JRuby/Seph/PHP.reboot/... SwitchPoint usage

Tom Rodriguez tom.rodriguez at oracle.com
Wed Aug 10 12:16:14 PDT 2011


>> I guess my concern is that the original (long) version may or may not
>> inline, but obviously doesn't degrade as badly. Why does the degraded
>> performance of the long form suffer so much? Ruby is a very terse
>> language, often resulting in methods that represent a lot of code. I'm
>> using invokedynamic to reduce the amount of code with the assumption
>> that indy + mh will not count against my inlning budgets. In this
>> case, it appears they do?
> 
> Indeed, that's the interesting (or worrying) part.  I can't answer right now why it degrades that much, I have to look at that again more closely.  Today I made it to work, tomorrow I'll fix the other problems ;-)

One thing I we should fix is that the bytecodes of the method handle adapter shouldn't count against the DesiredMethodLimit, in the same way they don't count against the inline depth.

tom

> 
> -- Christian
> 
>> 
>>> Well that's really nice!  The compiler is able to optimize away all constant lookups because all guards in between are eliminated and it can prove that the constant is not used.  The method is basically empty except a little JRuby boilerplate.  Now we need a real benchmark ;-)
>> 
>> Now we're talking! That's exactly what I hoped to see, and what I hope
>> to see if I start using SwitchPoint for other invalidation mechanisms.
>> This is exciting! :)
>> 
>> - Charlie
>> _______________________________________________
>> 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