Projects, which use JSR292
Christian Thalinger
christian.thalinger at oracle.com
Mon Feb 21 08:08:24 PST 2011
On Feb 21, 2011, at 4:43 PM, Christian Thalinger wrote:
> I fixed that but it didn't change performance. I just tried bench_tak and there is still a regression. I will look at that next.
Last email for today, I promise :-)
This last fix is actually causing the regression. The method gets to big with a recursive inlining level of 1 resulting in:
@ 127 java.dyn.MethodHandle::invokeExact size > DesiredMethodLimit
Setting MaxRecursiveInlineLevel=0 makes it faster. I think we eventually need some logic to discount the bytecodes of method handle adapters and friends.
-- Christian
$ bin/jruby.sh --server -Xcompile.invokedynamic=true -J-XX:+UseSerialGC -J-XX:+UnlockExperimentalVMOptions -J-XX:+EnableMethodHandles -J-XX:+EnableInvokeDynamic -J-XX:MaxInlineLevel=15 -J-XX:MaxInlineSize=150 -J-XX:InlineSmallCode=5000 -Xcompile.invokedynamic.rubyDirect=false bench/bench_tak.rb 10
user system total real
0.949000 0.000000 0.949000 ( 0.898000)
0.815000 0.000000 0.815000 ( 0.815000)
0.814000 0.000000 0.814000 ( 0.814000)
0.815000 0.000000 0.815000 ( 0.815000)
0.814000 0.000000 0.814000 ( 0.814000)
0.814000 0.000000 0.814000 ( 0.814000)
0.814000 0.000000 0.814000 ( 0.814000)
0.814000 0.000000 0.814000 ( 0.814000)
0.814000 0.000000 0.814000 ( 0.814000)
0.814000 0.000000 0.814000 ( 0.814000)
$ bin/jruby.sh --server -Xcompile.invokedynamic=true -J-XX:+UseSerialGC -J-XX:+UnlockExperimentalVMOptions -J-XX:+EnableMethodHandles -J-XX:+EnableInvokeDynamic -J-XX:MaxInlineLevel=15 -J-XX:MaxInlineSize=150 -J-XX:InlineSmallCode=5000 -Xcompile.invokedynamic.rubyDirect=true bench/bench_tak.rb 10
user system total real
1.343000 0.000000 1.343000 ( 1.290000)
1.081000 0.000000 1.081000 ( 1.081000)
1.087000 0.000000 1.087000 ( 1.087000)
1.086000 0.000000 1.086000 ( 1.086000)
1.085000 0.000000 1.085000 ( 1.085000)
1.088000 0.000000 1.088000 ( 1.088000)
1.086000 0.000000 1.086000 ( 1.086000)
1.084000 0.000000 1.084000 ( 1.084000)
1.086000 0.000000 1.086000 ( 1.086000)
1.088000 0.000000 1.088000 ( 1.088000)
$ bin/jruby.sh --server -Xcompile.invokedynamic=true -J-XX:+UseSerialGC -J-XX:+UnlockExperimentalVMOptions -J-XX:+EnableMethodHandles -J-XX:+EnableInvokeDynamic -J-XX:MaxInlineLevel=15 -J-XX:MaxInlineSize=150 -J-XX:InlineSmallCode=5000 -Xcompile.invokedynamic.rubyDirect=true -J-XX:MaxRecursiveInlineLevel=0 bench/bench_tak.rb 10
user system total real
0.832000 0.000000 0.832000 ( 0.779000)
0.714000 0.000000 0.714000 ( 0.714000)
0.713000 0.000000 0.713000 ( 0.713000)
0.713000 0.000000 0.713000 ( 0.713000)
0.714000 0.000000 0.714000 ( 0.714000)
0.713000 0.000000 0.713000 ( 0.713000)
0.713000 0.000000 0.713000 ( 0.713000)
0.715000 0.000000 0.715000 ( 0.715000)
0.713000 0.000000 0.713000 ( 0.713000)
0.713000 0.000000 0.713000 ( 0.713000)
More information about the mlvm-dev
mailing list