what's the Survivor size in Java 7
I have a JVM process with max 1024 MB heap size core dumped.(OpenJDK 7 on linux)
when I use Yourkit Java Profiler 10.0.6 analyses the core dump file, I find the process only use 803 MB heap when Out Of Memory.
It seems the two Survivor heap used 2/9 of heap (or reserved).
I tested with JDK 7 on Windows 7, the jvisualvm (with Visual GC plugin) shows one Survivor size is 1/3 of Eden size.
The parameter is: java -Xms512M -Xmx1024M -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:MaxGCPauseMillis=10000 -XX:+UseCompressedOops
But when I search on Internet, it says the default Survivor size is 1/8 of Eden size.
I cannot find why it's 1/3 on my testing.
Newly created objects in java will be placed a memory space called Eden space. Whenever eden space is filled, JVM triggers something called minor GC. The objects that survives the minor GC will be moved to a place called Survivor Space. The size of the survivor space is called survivor size.
You can adjust the survivor size with reference to Eden space using -XX:SurvivorRatio=N . You default survivor ratio is 8.