Re: Diagnosing performance cliffs on JDK7.

2012-08-20 Thread Christian Thalinger

On Aug 20, 2012, at 12:02 PM, "MacGregor, Duncan (GE Energy)" 
 wrote:

> While trying to do some minor performance tuning on how we handle multiple 
> return results I've finally managed to consistently provoke a performance 
> cliff in our benchmarks. Logging compilation I see that the method in 
> question is compiled a couple of times and then produces a
> 
> COMPILE SKIPPED: out of nodes before macro expansion (not retry able)

What JDK version are you seeing this problem with?

-- Chris

> 
> During an OSR, then another compile skipped during a non-use compilation, and 
> then zombies all the previous compiled versions.
> 
> The benchmark method is attempting to get items from a set of arrays into 
> local variables, call a method on them, and then put them back into different 
> arrays, all in a tight loop (hence the OSR replacements). I don't think it's 
> going megamorphic on me as only three types of objects are involved in the 
> whole thing, but it performs much better if it is the only benchmark run so 
> it could be something in our main language infrastructure.
> 
> The method itself is about 500 bytes long.
> 
> The lambda branch of JDK8 doesn't exhibit this problem, though that benchmark 
> is roughly 3 times slower than on JDK7 (when the performance cliff isn't hit).
> 
> Any tips on narrowing down the cause of this problem?
> 
> Thanks, Duncan.
> 
> 
> ___
> mlvm-dev mailing list
> mlvm-dev@openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


Diagnosing performance cliffs on JDK7.

2012-08-20 Thread MacGregor, Duncan (GE Energy)
While trying to do some minor performance tuning on how we handle multiple 
return results I've finally managed to consistently provoke a performance cliff 
in our benchmarks. Logging compilation I see that the method in question is 
compiled a couple of times and then produces a

COMPILE SKIPPED: out of nodes before macro expansion (not retry able)

During an OSR, then another compile skipped during a non-use compilation, and 
then zombies all the previous compiled versions.

The benchmark method is attempting to get items from a set of arrays into local 
variables, call a method on them, and then put them back into different arrays, 
all in a tight loop (hence the OSR replacements). I don't think it's going 
megamorphic on me as only three types of objects are involved in the whole 
thing, but it performs much better if it is the only benchmark run so it could 
be something in our main language infrastructure.

The method itself is about 500 bytes long.

The lambda branch of JDK8 doesn't exhibit this problem, though that benchmark 
is roughly 3 times slower than on JDK7 (when the performance cliff isn't hit).

Any tips on narrowing down the cause of this problem?

Thanks, Duncan.


___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


hg: mlvm/mlvm/langtools: rebase to current hsx/hotspot-comp

2012-08-20 Thread john . r . rose
Changeset: 2b879840b663
Author:jrose
Date:  2012-08-20 09:26 -0700
URL:   http://hg.openjdk.java.net/mlvm/mlvm/langtools/rev/2b879840b663

rebase to current hsx/hotspot-comp

! series

___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


hg: mlvm/mlvm/jdk: rebase to current hsx/hotspot-comp

2012-08-20 Thread john . r . rose
Changeset: 3f168634278e
Author:jrose
Date:  2012-08-20 09:26 -0700
URL:   http://hg.openjdk.java.net/mlvm/mlvm/jdk/rev/3f168634278e

rebase to current hsx/hotspot-comp

! series

___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


hg: mlvm/mlvm/hotspot: rebase to current hsx/hotspot-comp

2012-08-20 Thread john . r . rose
Changeset: 36e7d0f88e1d
Author:jrose
Date:  2012-08-20 09:26 -0700
URL:   http://hg.openjdk.java.net/mlvm/mlvm/hotspot/rev/36e7d0f88e1d

rebase to current hsx/hotspot-comp

! series

___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev