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.

Answers


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.


Need Your Help

Resource Dictionaries from different project throwing an exception

wpf xaml

I have a resource dictionary in a separate project called ItemsTemplate.

Fastest way to count number of bit transitions in an unsigned int

c bit counting

I'm looking for the fastest way of counting the number of bit transitions in an unsigned int.