Projects, which use JSR292
Christian Thalinger
christian.thalinger at oracle.com
Fri Feb 18 04:40:21 PST 2011
On Feb 18, 2011, at 1:33 PM, Charles Oliver Nutter wrote:
> FYI, my "patches/hotspot" dir is at revision 6eddc7cbeba6
I'm using hotspot-comp/hotspot/ -- Christian
>
> - Charlie
>
> On Fri, Feb 18, 2011 at 6:28 AM, Charles Oliver Nutter
> <headius at headius.com> wrote:
>> On Fri, Feb 18, 2011 at 6:17 AM, Christian Thalinger
>> <christian.thalinger at oracle.com> wrote:
>>> Is there a switch to turn direct ruby-to-ruby calls on and off? I'd like to compare inlining trees and maybe code output.
>>
>> Just pushed a couple for you in a4a0802:
>>
>> jruby.compile.invokedynamic.rubyDirect=true|false (Ruby targets
>> directly bind; defaults to true)
>> jruby.compile.invokedynamic.nativeDirect=true|false (Native (Java)
>> targets directly bind; defaults to true)
>>
>> Not to put any pressure on, but I had hoped to see this
>> directly-binding Ruby calls would *improve* perf :) With this in
>> place, the only thing dynopt does that my indy logic doesn't do is
>> dispatch literal fixnums directly through as long values (rather than
>> as RubyFixnum objects...and yes, this is only in place for literals).
>> Ideally, I'd expect optimized invokedynamic to perform as well as
>> dynopt in this situation.
>>
>> Here's output with all four permutations:
>>
>> ~/projects/jruby ➔
>> JAVA_HOME=../mlvm/sources/build/bsd-i586/j2sdk-image/ jruby --server
>> -X+C -Xcompile.invokedynamic=true -J-XX:+UnlockExperimentalVMOptions
>> -J-XX:+EnableInvokeDynamic -J-XX:+UnlockDiagnosticVMOptions
>> -J-XX:MaxInlineSize=150 -J-XX:InlineSmallCode=5000
>> bench/bench_fib_recursive.rb 5
>> 832040
>> 1.037000 0.000000 1.037000 ( 0.882000)
>> 832040
>> 0.479000 0.000000 0.479000 ( 0.479000)
>> 832040
>> 0.474000 0.000000 0.474000 ( 0.474000)
>> 832040
>> 0.458000 0.000000 0.458000 ( 0.458000)
>> 832040
>> 0.461000 0.000000 0.461000 ( 0.461000)
>>
>> ~/projects/jruby ➔
>> JAVA_HOME=../mlvm/sources/build/bsd-i586/j2sdk-image/ jruby --server
>> -X+C -Xcompile.invokedynamic=true -J-XX:+UnlockExperimentalVMOptions
>> -J-XX:+EnableInvokeDynamic -J-XX:+UnlockDiagnosticVMOptions
>> -J-XX:MaxInlineSize=150 -J-XX:InlineSmallCode=5000
>> -Xcompile.invokedynamic.rubyDirect=false bench/bench_fib_recursive.rb
>> 5
>> 832040
>> 0.363000 0.000000 0.363000 ( 0.297000)
>> 832040
>> 0.160000 0.000000 0.160000 ( 0.160000)
>> 832040
>> 0.156000 0.000000 0.156000 ( 0.156000)
>> 832040
>> 0.155000 0.000000 0.155000 ( 0.155000)
>> 832040
>> 0.162000 0.000000 0.162000 ( 0.162000)
>>
>> ~/projects/jruby ➔
>> JAVA_HOME=../mlvm/sources/build/bsd-i586/j2sdk-image/ jruby --server
>> -X+C -Xcompile.invokedynamic=true -J-XX:+UnlockExperimentalVMOptions
>> -J-XX:+EnableInvokeDynamic -J-XX:+UnlockDiagnosticVMOptions
>> -J-XX:MaxInlineSize=150 -J-XX:InlineSmallCode=5000
>> -Xcompile.invokedynamic.nativeDirect=false
>> bench/bench_fib_recursive.rb 5
>> 832040
>> 1.420000 0.000000 1.420000 ( 1.345000)
>> 832040
>> 1.030000 0.000000 1.030000 ( 1.030000)
>> 832040
>> 1.012000 0.000000 1.012000 ( 1.012000)
>> 832040
>> 1.023000 0.000000 1.023000 ( 1.023000)
>> 832040
>> 1.010000 0.000000 1.010000 ( 1.011000)
>>
>> ~/projects/jruby ➔
>> JAVA_HOME=../mlvm/sources/build/bsd-i586/j2sdk-image/ jruby --server
>> -X+C -Xcompile.invokedynamic=true -J-XX:+UnlockExperimentalVMOptions
>> -J-XX:+EnableInvokeDynamic -J-XX:+UnlockDiagnosticVMOptions
>> -J-XX:MaxInlineSize=150 -J-XX:InlineSmallCode=5000
>> -Xcompile.invokedynamic.rubyDirect=false
>> -Xcompile.invokedynamic.nativeDirect=false
>> bench/bench_fib_recursive.rb 5
>> 832040
>> 0.380000 0.000000 0.380000 ( 0.297000)
>> 832040
>> 0.167000 0.000000 0.167000 ( 0.167000)
>> 832040
>> 0.157000 0.000000 0.157000 ( 0.157000)
>> 832040
>> 0.156000 0.000000 0.156000 ( 0.156000)
>> 832040
>> 0.164000 0.000000 0.164000 ( 0.164000)
>>
>> - 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