On Aug 20, 2012, at 12:02 PM, "MacGregor, Duncan (GE Energy)" 
<duncan.macgre...@ge.com> 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

Reply via email to