RFR(S): 6378256: Performance problem with System.identityHashCode in client compiler
Rahul Raghavan
rahul.v.raghavan at oracle.com
Fri Dec 11 09:36:47 UTC 2015
> -----Original Message-----
> From: Tobias Hartmann > Sent: Wednesday, December 09, 2015 4:51 PM > To: Rahul Raghavan; hotspot-compiler-dev at openjdk.java.net
> Subject: Re: RFR(S): 6378256: Performance problem with System.identityHashCode in client compiler
>
> Hi Rahul,
>
> looks good to me (not a reviewer).
Thank you Tobias.
>
> Best,
> Tobias
>
> On 09.12.2015 10:12, Rahul Raghavan wrote:
> > Hello,
> >
> > Please review the following patch for JDK-6378256.
> >
> > webrev: http://cr.openjdk.java.net/~thartmann/6378256/webrev.00/ .
> >
> > Bug: https://bugs.openjdk.java.net/browse/JDK-6378256 .
> > Performance problem with System.identityHashCode, compared to Object.hashCode, with client compiler (at least seven times
> slower).
> > Issue reproducible for x86_32, SPARC (with -client / -XX:TieredStopAtLevel=1 , 2, 3 options).
> >
> > sample unit test:
> > public class Jdk6378256Test
> > {
> > public static void main(String[] args)
> > {
> > Object obj = new Object();
> > long time = System.nanoTime();
> > for(int i = 0 ; i < 1000000 ; i++)
> > System.identityHashCode(obj); //compare to obj.hashCode();
> > System.out.println ("Result = " + (System.nanoTime() - time));
> > }
> > }
> >
> > Fix: Enabled the C1 optimization which was done only for Object.hashCode, now for System.identityHashCode() also.
> > (looks in the header for the hashCode before calling into the VM).
> > Unlike for Object.hashCode, System.identityHashCode is static method and gets object as argument instead of the receiver.
> > So also added required additional null check for System.identityHashCode case.
> >
> > Testing:
> > - successful JPRT run (-testset hotspot).
> > - JTREG testing (hotspot/test, jdk/test - java/util, java/io, java/lang/System).
> > (with -client / -XX:TieredStopAtLevel=1 etc. options).
> > - Added 'noreg-perf' label for this performance bug.
> > Manual testing done and confirmed expected performance values for unit tests with fix.
> >
> > Thanks,
> > Rahul
> >
More information about the hotspot-compiler-dev
mailing list