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