Projects, which use JSR292
Charles Oliver Nutter
headius at headius.com
Fri Feb 18 04:17:11 PST 2011
On Fri, Feb 18, 2011 at 5:56 AM, Charles Oliver Nutter
<headius at headius.com> wrote:
> <headius at headius.com> 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 at 15
; -
sun.dyn.MethodHandleImpl$GuardWithTest::invoke_L5 at 11 (line 986)
; - java.dyn.MethodHandle::invokeExact at 8
; -
bench.bench_tak::method__0$RUBY$tak at 19 (line 2)
; -
java.dyn.MethodHandle::invokeExact at 24
; -
sun.dyn.MethodHandleImpl$GuardWithTest::invoke_L7 at 36 (line 997)
; -
java.dyn.MethodHandle::invokeExact at 12
; -
bench.bench_tak::method__0$RUBY$tak at 66 (line 5)
; -
java.dyn.MethodHandle::invokeExact at 24
; -
sun.dyn.MethodHandleImpl$GuardWithTest::invoke_L7 at 36 (line 997)
; -
java.dyn.MethodHandle::invokeExact at 12
; -
bench.bench_tak::method__0$RUBY$tak at 66 (line 5)
; -
java.dyn.MethodHandle::invokeExact at 24
; -
sun.dyn.MethodHandleImpl$GuardWithTest::invoke_L7 at 36 (line 997)
; -
java.dyn.MethodHandle::invokeExact at 12
; -
bench.bench_tak::method__0$RUBY$tak at 66 (line 5)
; -
java.dyn.MethodHandle::invokeExact at 24
; -
sun.dyn.MethodHandleImpl$GuardWithTest::invoke_L7 at 36 (line 997)
; -
java.dyn.MethodHandle::invokeExact at 12
; -
bench.bench_tak::method__0$RUBY$tak at 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
More information about the mlvm-dev
mailing list