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

Stefan Johansson stefan.johansson at oracle.com
Mon Dec 9 01:33:00 PST 2013


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.

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