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) _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev