Pls review 6887571
Y.S.Ramakrishna at Sun.COM
Y.S.Ramakrishna at Sun.COM
Fri Oct 2 09:57:28 PDT 2009
Hi Paul --
Looks good (and about time too!).
Should the parameters whose defaults are now
uniform across platforms migrate back to globals.hpp
from their current lobals_*.hpp locations? Or do you
see the need for continuing to keep them in platform-specific
globals_*.hpp?
-- ramki
On 10/02/09 07:32, Paul Hohensee wrote:
> 6887571: Increase default heap config sizes
>
> Webrev at
>
> http://cr.openjdk.java.net/~phh/6887571/webrev.00/
>
> From the CR description:
>
> The default client vm heap config since ~2000 has been the equivalent of
>
> -Xmx64m -XX:OldSize=4m -XX:NewSize=2m -XX:NewRatio=8
> -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=15
>
> for sparc32, and
>
> -Xmx64m -XX:OldSize=4m -XX:NewSize=1m -XX:NewRatio=12
> -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=15
>
> for x86. OldSize and NewSize are the initial committed sizes of the old
> and young gens respectively. A full gc is required to increase the
> committed
> size of the old gen.
>
> At the time, 64m was half of the 128m of memory typically available on
> high-end
> desktops, many client applications were satisfied with small heaps
> (hence the
> low -Xms value), and gc times were such that the young gen had to be
> fairly small
> in order to minimize pause times.
>
> Since that time, low end desktops and laptops, as well as netbooks and
> smartbooks,
> typically come with 256m, client applications have become much more
> "server-like",
> and we've realized that small young gen sizes increase the frequency of
> young gcs
> and the amount of transient data promoted to the old gen to levels that
> noticeably
> impact startup and steady-state performance, principally by provoking
> full GCs.
> We also note that young gen collection times are proportional to the
> total survivor
> size rather than young gen size and that small (in absolute terms)
> survivor spaces
> cause promotion of transient objects, thereby eventually provoking
> unnecessary
> full GCs.
>
> This change make the default heap config
>
> -Xmx128m -XX:OldSize=14m -XX:NewSize=4m -XX:NewRatio=2
> -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=15
>
> I.e., it leaves SurvivorRatio and MaxTenuringThreshold alone, but
> increases absolute
> survivor space size significantly. We still want as many objects to die
> in the young
> gen as possible, so MaxTenuringThreshold reamins at maximum. NewRatio is
> set to the server default of 2, thereby increasing reducing the number
> of young collections.
>
> JavaFX startup benchmark runs show an almost 11% improvement, while generic
> client startup benchmark runs show up to 14% improvement. Footprint
> increases
> somewhat, ranging from 2% for noop to 37% for netbeans.
>
> Thanks,
>
> Paul
>
More information about the hotspot-dev
mailing list