I am running a Java client with Java JRE on 32 bit windows,
java -Xmx1024m -Xms1024m -verbose:gc -XX:+PrintGCDetails -jar myJar.jar
My jar contains a lot of data (doubling tables, 600 thousand MB) that remain in the memory for the entire life of the application.
He then issues registration messages every minute, saying:
[GC [DefNew: 279616K-> 279616K (314560K), 0.0002037 secs] [Calculated: 595827K-> 599952K (699072K), 1.1020398 secs] 875443K-> 599952K (1013632K), [Perm: 10042K-> 10042K) ], 1.1030218 secs] [Times: user = 1.09 sys = 0.01, real = 1.11 secs]
and I really don't understand the bold part. It says that the new generation goes from 279616K to 279616K (i.e. nothing has changed), the old generation has increased slightly (595827K-> 599952K), but in general it says 875443K-> 599952K, i.e. 30% reduction. How can it be?
edit: to be completely clear, I expected that if I add 279616K + 595827K = 875443K, I will get the first part in bold, i.e. the total heap size. Likewise, I expected 279616K + 599952K to highlight the second part in bold, but that is not the case. In the Java Java Garbage Log Messages link, listed below, it really stacks up, so I'm probably missing something.
source share