RFR: 8027675: Full collections with Serial slower in JDK 8 compared to 7u40
Stefan Johansson
stefan.johansson at oracle.com
Mon Nov 25 01:09:14 PST 2013
Thanks for taking a look Jon.
On 2013-11-22 17:21, Jon Masamitsu wrote:
> Stefan,
>
> Changes look good. Just some questions to be sure I
> understand what was previously happening.
>
> Thanks.
>
> Jon
>
> On 11/21/2013 8:43 AM, Stefan Johansson wrote:
>> Hi all,
>>
>> Can I have a couple reviews for this fix for:
>> https://bugs.openjdk.java.net/browse/JDK-8027675
>>
>> Webrev:
>> http://cr.openjdk.java.net/~sjohanss/8027675/webrev.00/
>>
>> Summary:
>> When doing permgen removal we had to change the way classes were
>> marked and handled in the GC. When doing this we ended up doing some
>> things a little less efficient than before. The regression is easy to
>> reproduce and when doing a JFR recording we can see that we now spend
>> more time in both the mark and adjust phase.
>>
>> 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.
> The calls to follow_class_loader() were there just for the case
> of the anonymous classes?
>
Yes, for other classes it's sufficient to just mark and push the class
loader.
>>
>> To improve the adjust phase:
>> * All calls to adjust_klass have been removed since this is already
>> handled by processing the ClassLoaderDataGraph.
>
> So in the original code the call were made to
> ClassLoaderData::oops_do() and found the CLD
> already claimed so did nothing?
>
Yes, all calls to adjust_klass did nothing more that check and find that
things were already adjusted.
>
>>
>> Testing:
>> * Manually ran SPECjbb2005 to verify fixing the regression
>> * JPRT for functional sanity testing
>> * Nashorn tests to stress anonymous classes
>>
>> Thanks,
>> StefanJ
>
More information about the hotspot-dev
mailing list