RRF: 8187123: (reflect) Class#getCanonicalName and Class#getSimpleName is a part of performance issue

David Holmes david.holmes at oracle.com
Mon Apr 30 21:50:28 UTC 2018


Hi Claes,

On 30/04/2018 10:49 PM, Claes Redestad wrote:
> Hi,
> 
> please review this patch to enable caching of getCanonicalName and 
> getSimpleName, repeated calls of which has been reported to be a 
> performance
> bottleneck. The caching improves performance of these methods by up to 20x.
> 
> Rather than adding new fields to Class itself, which would have 
> footprint implications on classes, we can piggy-back on 
> Class$ReflectionData object.
> 
> Webrev: http://cr.openjdk.java.net/~redestad/8187123/open.02/
> Bug: https://bugs.openjdk.java.net/browse/JDK-8187123

Given String's are immune to unsafe publication races, you should be 
able to drop the volatile modifiers. That might save a few more cycles.

Cheers,
David

> Thanks!
> 
> /Claes
> 
> 


More information about the core-libs-dev mailing list