On Fri, Feb 18, 2011 at 5:56 AM, Charles Oliver Nutter <head...@headius.com> wrote: > <head...@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@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 mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev