Java JVM parameter Xms doesn't take effect immediately
<p>I run my Java Application through tomcat, and set the -Xms1024m, however I found the size of the Java heap just 200~300m after start the application, I think the Xms means the minimum heap size, why the application doesn't reach to the minimum Heap size 1024m <strong>immediately</strong> after the application startup?  </p>

<p>Edit, BTW, the JVM is hotspot 7.0.</p>

<p>It seems the GC does it in the 
method HeapRegion::setup_heap_region_size(uintx min_heap_size) from the c++ file        \openjdk-7-fcs-src-b147-27_jun_2011\openjdk\hotspot\src\share\vm\gc_implementation\g1\heapRegion.cpp  ,  and method   parse_each_vm_init_arg  from file  \openjdk-7-fcs-src-b147-     27_jun_2011\openjdk\hotspot\src\share\vm\runtime\arguments.cpp , someone who familiar with JVM GC source code can help to do some analysis for it.</p>

<p><a href="https://i.stack.imgur.com/Gme72.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Gme72.jpg" alt="enter image description here"></a></p>