Experiments with ruby-processing (processing-2.2.1) and JRubyArt for processing-3.0

Thursday 22 March 2012

Invoke Dynamic

This is way beyond me but headius (aka Charles Nutter) has been blogging about invoke-dynamic and its possible influence on jruby performance. One thing he found out was that jruby was possibly doing too much in-lining (which could prevent optimisation on the jvm). I think this really only applies to jdk 7+. In ruby-processing you can add the following to your jvm_args.txt

-XX:CompileCommand=dontinline,org.jruby.runtime.invokedynamic.InvokeDynamicSupport::invocationFallback

This is the expected console output:

CompilerOracle: dontinline org/jruby/runtime/invokedynamic/InvokeDynamicSupport.invocationFallback

I'm not up to doing the tests but Charles claims to have seen some performance improvements, more interesting stuff here.
Anyway we may not have to wait too long for jruby-1.7.0 and theoretically at least, some significant performance improvements.
There might be an easier way to enter these settings see here by creating a file .jrubyc, which is essentially a "properties" file with entries such as:-
compat.version=1.9
cext.enabled=false
errno.backtrace=true
compile.invokedynamic=[true, false]
Use invokedynamic on Java 7+. Default is true.

1 comment:

  1. Wonderful blog & good post.Its really helpful for me, awaiting for more new post. Keep Blogging!






    iMarque - Form Processing

    ReplyDelete

Followers

About Me

My photo
I have developed JRubyArt and propane new versions of ruby-processing for JRuby-9.1.5.0 and processing-3.2.2