Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Your survivor ration is very important, with 10 000 you are telling the JVM that a survivor space is one 10000th the size of eden.</p> <p><a href="http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html" rel="nofollow">From documentation</a> :</p> <blockquote> <p>If survivor spaces are too small, copying collection overflows directly into the tenured generation. If survivor spaces are too large, they will be uselessly empty. At each garbage collection the virtual machine chooses a threshold number of times an object can be copied before it is tenured. This threshold is chosen to keep the survivors half full. The command-line option -XX:+PrintTenuringDistribution can be used to show this threshold and the ages of objects in the new generation. It is also useful for observing the lifetime distribution of an application.</p> </blockquote> <p>So obviously with a so low survivor space ratio, your objects are directly stored in the tenured generation.</p> <p>When the tenured generation is full a <strong>major collection</strong> happened and that's why you see <code>[Full GC...]</code> in the log.</p> <p>If you want to make the young generation bigger use :</p> <pre><code>-XX:NewRatio=1 </code></pre> <p>It means the combined size of the eden and survivor spaces will be one half of the total heap size. (I guess you can't have a bigger young generation)</p> <p>Also you don't have to set <code>-XX:NewSize</code> if you have already set <code>-Xmn</code>, <code>-Xmn</code> is the same thing since 1.4. And I guess you don't want to bound young gen from above with <code>-XX:MaxNewSize</code>, the default value is unlimited. But setting the size of the young generation with the same value as the max heap size imply you don't let space for old generation so I guess the JVM will resize generations.</p> <p>To conclude there is also some case where allocations can occur directly into the tenured generation. (<a href="http://java.sun.com/docs/hotspot/gc1.4.2/faq.html" rel="nofollow">Do objects ever get allocated directly into the old generation?</a>)</p> <blockquote> <ul> <li>If an allocation fails in the young generation and the object is a large array that does not contain any references to objects, it can be allocated directly into the old generation. In some select instances, this strategy was intended to avoid a collection of the young generation by allocating from the old generation. The threshold size is 64k words.</li> </ul> </blockquote>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload