RFR 6642881: Improve performance of Class.getClassLoader()
Coleen Phillimore
coleen.phillimore at oracle.com
Mon Jun 16 22:44:02 UTC 2014
On 6/16/14, 6:33 PM, Christian Thalinger wrote:
> + template(classClassLoader_name, "classLoader") \
>
> This should be classLoader_name.
Thanks, you're right, I thought there was some sort of namespace
convention (ie to say this is a field of j.l.class) from following
classRedefinedCount example but there isn't this convention.
Thanks,
Coleen
>
> Otherwise this looks good.
>
> On Jun 16, 2014, at 8:42 AM, Coleen Phillimore
> <coleen.phillimore at oracle.com <mailto:coleen.phillimore at oracle.com>>
> wrote:
>
>> Summary: Add classLoader to java/lang/Class instance for fast access
>>
>> In order to improve performance of Class.getClassLoader() in a way to
>> allow the compilers to automatically optimize this call, I added the
>> classLoader to the instance of java/lang/Class. For microbenchmarks,
>> this results in a 98% improvement, which was expected. For Oracle
>> internal applications, this results in a 10-12% improvement on
>> solaris/sparc. The increase in size of java/lang/Class can be
>> offset by other changes (removing constant pool lock, or removing
>> signers).
>>
>> See bug link https://bugs.openjdk.java.net/browse/JDK-6642881 and
>> associated linked bugs for more details.
>>
>> open webrev at http://cr.openjdk.java.net/~coleenp/6642881_hotspot/
>> <http://cr.openjdk.java.net/%7Ecoleenp/6642881_hotspot/>
>> open webrev at http://cr.openjdk.java.net/~coleenp/6642881_jdk/
>> <http://cr.openjdk.java.net/%7Ecoleenp/6642881_jdk/>
>>
>> There is both hotspot and jdk changes for this change. The hotspot
>> changes can work without the jdk changes (check for optional field),
>> but not vice-versa. I'll file another bug (and compatibility
>> request) to remove JVM_GetClassLoader from hotspot.
>>
>> Tested with jck lang, vm, api/java_lang tests with/without jdk
>> change, nsk vm.quick.testlist and hotspot jtreg tests, and jprt.
>>
>> Thanks,
>> Coleen
>>
>>
>
More information about the jdk9-dev
mailing list