On Fri, Feb 18, 2011 at 5:56 AM, Charles Oliver Nutter
<[email protected]> wrote:
> <[email protected]> wrote:
>> I did just land another revision that allows Ruby to Ruby calls
>> meeting the above criteria to bind all the way through, and
>> performance dropped precipitously:
>
> The degradation for tak is just as significant:
More information, since I can't sleep. I bumped up various thresholds
and did not see an improvement. So I fired up the trusty hsdis plugin,
and looked for "tak" and the first "call" operation I found shows that
many levels of Ruby code are indeed inlining:
0x02886e87: call 0x0282d560 ; OopMap{[240]=Oop [248]=Oop
[252]=Oop [256]=Oop [36]=Oop [40]=Oop [68]=Oop [176]=Oop [192]=Oop
[196]=Oop [200]=Oop [204]=Oop off=2892}
;*invokestatic test
; -
java.dyn.MethodHandle::invokeExact@15
; -
sun.dyn.MethodHandleImpl$GuardWithTest::invoke_L5@11 (line 986)
; - java.dyn.MethodHandle::invokeExact@8
; -
bench.bench_tak::method__0$RUBY$tak@19 (line 2)
; -
java.dyn.MethodHandle::invokeExact@24
; -
sun.dyn.MethodHandleImpl$GuardWithTest::invoke_L7@36 (line 997)
; -
java.dyn.MethodHandle::invokeExact@12
; -
bench.bench_tak::method__0$RUBY$tak@66 (line 5)
; -
java.dyn.MethodHandle::invokeExact@24
; -
sun.dyn.MethodHandleImpl$GuardWithTest::invoke_L7@36 (line 997)
; -
java.dyn.MethodHandle::invokeExact@12
; -
bench.bench_tak::method__0$RUBY$tak@66 (line 5)
; -
java.dyn.MethodHandle::invokeExact@24
; -
sun.dyn.MethodHandleImpl$GuardWithTest::invoke_L7@36 (line 997)
; -
java.dyn.MethodHandle::invokeExact@12
; -
bench.bench_tak::method__0$RUBY$tak@66 (line 5)
; -
java.dyn.MethodHandle::invokeExact@24
; -
sun.dyn.MethodHandleImpl$GuardWithTest::invoke_L7@36 (line 997)
; -
java.dyn.MethodHandle::invokeExact@12
; -
bench.bench_tak::method__0$RUBY$tak@66 (line 5)
; {static_call}
So...why so much slower? As far as I can see in the output, this is
the one and only "tak" emitted.
- Charlie
_______________________________________________
mlvm-dev mailing list
[email protected]
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev