Request for review (S): 8005396: Use ParNew with only one thread instead of DefNew as default for CMS on single CPU machines
Bengt Rutisson
bengt.rutisson at oracle.com
Fri Dec 21 13:42:40 UTC 2012
Hi All,
Can I have a couple of reviews for this change?
http://cr.openjdk.java.net/~brutisso/8005396/webrev.00/
Currently we use ParNew as default for the young generation when CMS is
selected. But if the machine only has a single CPU we set the
ParallelGCThreads to 0 and and select DefNew instead of ParNew.
As part of another change, 8003820, we will deprecate the DefNew + CMS
combination. Thus, it does not make sense anymore to have this selected
by default. This fix is to make CMS always pick ParNew by default.
The change also has the side effect that the, in my opinion, rather
strange behavior that setting ParallelGCThreads=0 on the command line
overrides the GC choice. I would expect this command line to give me
ParNew, but it actually gives me DefNew:
-XX:+UseParNewGC -XX:ParallelGCThreads=0
After my proposed change you get ParNew with the above command line.
I have done some performance testing to verify that ParNew with one
thread is not slower than DefNew. The details are in the bug report:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8005396
but as a summary it can be said that there is no noticeable difference.
I am also running some more SPECjbb2005 runs and will analyze the gc times.
Thanks,
Bengt
More information about the hotspot-gc-dev
mailing list