Lost perf between 8u40 and 9 hs-comp
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Thu Feb 26 18:18:15 UTC 2015
Thanks for the report, Charlie!
The regression is caused by never-taken branch pruning [1].
-Djava.lang.invoke.MethodHandle.PROFILE_GWT=false makes the regression
go away.
My main suspicion is that recompilations caused by pruned branches can
lead to less efficient code. But I have to dig the logs before make any
conclusions.
I'll keep you posted about my findings.
Best regards,
Vladimir Ivanov
[1] https://bugs.openjdk.java.net/browse/JDK-8069591
On 2/26/15 2:53 AM, Charles Oliver Nutter wrote:
> I'm finally at home with a working machine so I can follow up on some
> VM Summit to-dos.
>
> Vladimir wanted me to test out jdk9 hs-comp, which has all his latest
> work on method handles. I wish I could report that performance looks
> great, but it doesn't.
>
> Here's timing (in s) of our red/black benchmark on JRuby 1.7.19, first
> on the latest (as of today) 8u40 snapshot build and then on a
> minutes-old jdk9 hs-comp build:
>
> ~/projects/jruby $ (pickjdk 4 ; rvm jruby-1.7.19 do ruby
> -Xcompile.invokedynamic=true ../rubybench/time/bench_red_black.rb 10)
> New JDK: jdk1.8.0_40.jdk
> 5.206
> 2.497
> 0.69
> 0.703
> 0.72
> 0.645
> 0.698
> 0.673
> 0.685
> 0.67
>
> ~/projects/jruby $ (pickjdk 5 ; rvm jruby-1.7.19 do ruby
> -Xcompile.invokedynamic=true ../rubybench/time/bench_red_black.rb 10)
> New JDK: jdk1.9_hs-comp
> 5.048
> 3.773
> 1.836
> 1.474
> 1.366
> 1.394
> 1.249
> 1.399
> 1.352
> 1.346
>
> Perf is just about 2x slower on jdk9 hs-comp.
>
> I tried out a few other benchmarks, which don't seem to have as much variation:
>
> * recursive fib(35): equal perf
> * mandelbrot: jdk8u40 5% faster
> * protobuf: jdk9 5% faster
>
> The benchmarks are in jruby/rubybench on Github. JRuby 1.7.19 can be
> grabbed from jruby.org or built from jruby/jruby (see BUILDING.md).
>
> Looking forward to helping improve this :-)
>
> - Charlie
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>
More information about the mlvm-dev
mailing list