More performance explorations
Charles Oliver Nutter
headius at headius.com
Thu Jun 2 09:01:43 PDT 2011
Ok, the ricochet flag performs in the expected range...but still
slower than the old logic, and also slower than the 5/13 macosx build.
~/projects/jruby ➔ jruby -X+C
-J-Djava.lang.invoke.GWT_FORCE_RICOCHET_FRAMES=false --server
bench/bench_fib_recursive.rb 5 35
9227465
1.354000 0.000000 1.354000 ( 1.249000)
9227465
0.962000 0.000000 0.962000 ( 0.962000)
9227465
0.953000 0.000000 0.953000 ( 0.953000)
9227465
0.953000 0.000000 0.953000 ( 0.954000)
9227465
0.958000 0.000000 0.958000 ( 0.958000)
~/projects/jruby ➔ jruby -X+C
-J-Djava.lang.invoke.GWT_FORCE_RICOCHET_FRAMES=true --server
bench/bench_fib_recursive.rb 5 35
9227465
1.316000 0.000000 1.316000 ( 1.264000)
9227465
1.001000 0.000000 1.001000 ( 1.001000)
9227465
1.010000 0.000000 1.010000 ( 1.011000)
9227465
0.999000 0.000000 0.999000 ( 1.000000)
9227465
1.008000 0.000000 1.008000 ( 1.008000)
~/projects/jruby ➔ pickjdk 2
New JDK: 1.7.0.jdk
~/projects/jruby ➔ jruby -X+C --server bench/bench_fib_recursive.rb 5 359227465
1.127000 0.000000 1.127000 ( 0.940000)
9227465
0.810000 0.000000 0.810000 ( 0.810000)
9227465
0.809000 0.000000 0.809000 ( 0.809000)
9227465
0.810000 0.000000 0.810000 ( 0.810000)
9227465
0.822000 0.000000 0.822000 ( 0.822000)
The last result is the 5/13 build.
Another angle: fib with Float (a boxed double, basically):
~/projects/jruby ➔ jruby -X+C
-J-Djava.lang.invoke.GWT_FORCE_RICOCHET_FRAMES=true --server
bench/bench_fib_float_recursive.rb 5 35
9227465.0
2.492000 0.000000 2.492000 ( 2.437000)
9227465.0
1.951000 0.000000 1.951000 ( 1.951000)
9227465.0
1.950000 0.000000 1.950000 ( 1.950000)
9227465.0
1.951000 0.000000 1.951000 ( 1.952000)
^C
~/projects/jruby ➔ jruby -X+C
-J-Djava.lang.invoke.GWT_FORCE_RICOCHET_FRAMES=false --server
bench/bench_fib_float_recursive.rb 5 35
9227465.0
2.369000 0.000000 2.369000 ( 2.324000)
9227465.0
1.916000 0.000000 1.916000 ( 1.916000)
9227465.0
1.904000 0.000000 1.904000 ( 1.904000)
9227465.0
1.905000 0.000000 1.905000 ( 1.905000)
9227465.0
1.924000 0.000000 1.924000 ( 1.924000)
~/projects/jruby ➔ pickjdk 2New JDK: 1.7.0.jdk
~/projects/jruby ➔ jruby -X+C --server
bench/bench_fib_float_recursive.rb 5 359227465.0
2.110000 0.000000 2.110000 ( 2.055000)
9227465.0
1.690000 0.000000 1.690000 ( 1.690000)
9227465.0
1.718000 0.000000 1.718000 ( 1.718000)
9227465.0
1.721000 0.000000 1.721000 ( 1.721000)
I'm on leave right now so I can't spend a lot of time investigating
this until perhaps Monday.
- Charlie
On Thu, Jun 2, 2011 at 10:23 AM, Charles Oliver Nutter
<headius at headius.com> wrote:
> I tentatively admit guilt. I was still running off the 5/26 build,
> which still had convertArguments and probably didn't have all the
> recent optimizations for ricochet. I'm doing an updated build now and
> will report back shortly.
>
> On Thu, Jun 2, 2011 at 10:13 AM, Charles Oliver Nutter
> <headius at headius.com> wrote:
>> Ok, I'll reinvestigate; I thought I had logged that it was compiling
>> but perhaps that wasn't with the new property...
>>
>> On Wed, Jun 1, 2011 at 3:37 PM, Tom Rodriguez <tom.rodriguez at oracle.com> wrote:
>>> I'm seeing slow perf as well but I think it might be a jruby/292 mismatch problem:
>>>
>>> Exception <a 'java/lang/NoSuchMethodError'>: java.lang.invoke.MethodHandles.convertArguments(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodT\
>>> ype;)Ljava/lang/invoke/MethodHandle; (0xefdd4b18 )
>>> thrown [/net/smite.us.oracle.com/export/ws/bim/src/share/vm/interpreter/linkResolver.cpp, line 354]
>>> for thread 0x0807c800
>>> Exception <a 'java/lang/NoSuchMethodError'> (0xefdd4b18)
>>> thrown in interpreter method <{method} '<clinit>' '()V' in 'org/jruby/runtime/invokedynamic/InvokeDynamicSupport'>
>>> at bci 2876 for thread 0x0807c800
>>> Exception <a 'java/lang/NoSuchMethodError'> (0xefdd4b18 )
>>>
>>> which results in this:
>>>
>>> Exception <a 'java/lang/NoSuchMethodError'> (0xefdd4b18)
>>> thrown in interpreter method <{method} 'tryCompile' '(Lorg/jruby/ast/Node;Ljava/lang/String;Lorg/jruby/util/JRubyClassLoader;Lorg>
>>> at bci 56 for thread 0x0807c800
>>> Exception <a 'java/lang/NoClassDefFoundError'>: Could not initialize class org.jruby.compiler.impl.StandardASMCompiler (0xefe4c818 )
>>> thrown [/net/smite.us.oracle.com/export/ws/bim/src/share/vm/oops/instanceKlass.cpp, line 440]
>>> for thread 0x0807c800
>>> Exception <a 'java/lang/NoClassDefFoundError'> (0xefe4c818)
>>> thrown in interpreter method <{method} '<init>' '(Ljava/lang/String;Ljava/lang/String;Lorg/jruby/Ruby;Lorg/jruby/internal/runtime>
>>> at bci 126 for thread 0x0807c800
>>> Exception <a 'java/lang/NoClassDefFoundError'> (0xefe4c818)
>>> thrown in interpreter method <{method} 'jitThresholdReached' '(Lorg/jruby/internal/runtime/methods/DefaultMethod;Lorg/jruby/RubyI>
>>> at bci 220 for thread 0x0807c800
>>>
>>> So I think the jruby compiler never triggers with the new meth.jar.
>>>
>>> tom
>>>
>>> On May 31, 2011, at 12:03 PM, John Rose wrote:
>>>
>>>> On May 31, 2011, at 9:36 AM, Charles Oliver Nutter wrote:
>>>>
>>>>> If you mean java.lang.invoke.GWT_FORCE_RICOCHET_FRAMES=true, then I
>>>>> have more bad news...it's even slower :(
>>>>
>>>> Is that with meth-bim.patch applied? That is Tom's first cut at an optimization for RFs.
>>>>
>>>> -- John
>>>> _______________________________________________
>>>> mlvm-dev mailing list
>>>> mlvm-dev at openjdk.java.net
>>>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>>>
>>> _______________________________________________
>>> 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