RFR: 8028993: Full collections with ParallelScavenge slower in JDK 8 compared to 7u40

Mikael Gerdin mikael.gerdin at oracle.com
Mon Dec 9 03:28:47 PST 2013


Stefan,

On Monday 09 December 2013 10.33.00 Stefan Johansson wrote:
> Hi all,
> 
> Updated one thing in the webrev after an offline comment. The new webrev
> is at:
> http://cr.openjdk.java.net/~sjohanss/8028993/webrev.01/
> 
> The only change was to move the definition of follow_klass() in
> psParallelCompact.hpp to be below the definition of mark_and_push().
> This might help inlining for some compilers, and it also maps to how the
> declarations are ordered.

The change looks good to me.
/Mikael

> 
> Please review this fix,
> Stefan
> 
> On 2013-12-04 17:48, Stefan Johansson wrote:
> > Hi,
> > 
> > Can I have some reviews for this change to fix:
> > https://bugs.openjdk.java.net/browse/JDK-8028993
> > 
> > Webrev:
> > http://cr.openjdk.java.net/~sjohanss/8028993/webrev.00/
> > 
> > Summary:
> > While fixing JDK-8027675 we realized that we should have a similar
> > regression with ParallelGC. The regression is not as big as with
> > serial but the logic changes are the same and I've been able to
> > measure a significant improvement with this fix, taking us on par with
> > 7u40.
> > 
> > The theory behind the fix is the same as when fixing serial:
> > ---
> > To improve the mark phase:
> > * Enabled the calls to follow_klass to be inlined.
> > * Reduce the extensive amount of calls to follow_class_loader in
> > follow_klass and instead just mark the klass holder (the class loader
> > or the java mirror) for the given klass.
> > 
> > To improve the adjust phase:
> > * All calls to adjust_klass have been removed since this is already
> > handled by processing the ClassLoaderDataGraph.
> > ---
> > 
> > Testing:
> > * Building and basic testing through JPRT
> > * Some manual testing running Nashorn tests
> > * Performance testing with SPECjbb2005
> > 
> > Thanks,
> > Stefan



More information about the hotspot-dev mailing list