Request for review (XXS): 7128532 G1: Change default value of G1DefaultMaxNewGenPercent to 80

Bengt Rutisson bengt.rutisson at oracle.com
Tue Jan 10 07:57:24 UTC 2012


Hi all,

Could I have a couple of reviews for this really small change? I am just 
changing the default value of a newly introduced flag from 50 to 80.

7128532 G1: Change default value of G1DefaultMaxNewGenPercent to 80
http://monaco.us.oracle.com/detail.jsf?cr=7128532
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7128532

Some background:

As part of the fix for 7113021 I introduced two new develop flags that 
are used as default values for the minimum and maximum size of the G1 
young gen. Initially I set these to 20% and 50% respectively. Monica has 
now been running some performance tests to see if it would be better 
with other default values. It looks like we would benefit from a larger 
maximum value.

It should be pretty safe to have a large maximum value. The heuristics 
in G1 calculates the actual young gen size based on the pause target. 
So, just because we have a large max does not mean that we will ever get 
a young gen that big. Also, it is always possible to override the 
default value with -XX:MaxNewSize.

Here are some SPECjbb2005 results from Monica:

Min 20, Max 77: Valid run, Score is 356592; Full GC (outside of the 
system GCs): 0
Min 33, Max 77: Valid run, Score is 353053; Full GC (outside of the 
system GCs): 0
Min 20, Max 60: Valid run, Score is 352318; Full GC (outside of the 
system GCs): 2
Min 15, Max 77: Valid run, Score is 349376; Full GC (outside of the 
system GCs): 0
default (Min: 20, Max 50): Valid run, Score is 347647; Full GC (outside 
of the system GCs): 2
Min 20, Max 70: Valid run, Score is 346375; Full GC (outside of the 
system GCs): 0
Min 33, Max 60: Valid run, Score is 333381; Full GC (outside of the 
system GCs): 0

For comparison:
parallelold: Valid run, Score is 358668; Full GC (outside of the system 
GCs): 13

Here is a webrev:
http://cr.openjdk.java.net/~brutisso/7128532/webrev.01/

But since the change is so small I am including the diff here as well:

diff --git a/src/share/vm/gc_implementation/g1/g1_globals.hpp 
b/src/share/vm/gc_implementation/g1/g1_globals.hpp
--- a/src/share/vm/gc_implementation/g1/g1_globals.hpp
+++ b/src/share/vm/gc_implementation/g1/g1_globals.hpp
@@ -295,7 +295,7 @@
            "Percentage (0-100) of the heap size to use as minimum 
"          \
            "young gen 
size.")                                                \
                                                                              \
-  develop(uintx, G1DefaultMaxNewGenPercent, 
50,                             \
+  develop(uintx, G1DefaultMaxNewGenPercent, 
80,                             \
            "Percentage (0-100) of the heap size to use as maximum 
"          \
            "young gen size.")


Thanks,
Bengt




More information about the hotspot-gc-dev mailing list