Also note that for Fixnum dependent benchmarks, JRuby has to allocate memory due to boxed integers, whereas on the de facto interpreter it's able to use tagged pointers which allow Fixnums to be treated as simple numeric values.
This may be going away in JDK9 as they claim they're eliminating primitive types in favor of an everything-is-an-object model.
Comments
Also note that for Fixnum dependent benchmarks, JRuby has to allocate memory due to boxed integers, whereas on the de facto interpreter it's able to use tagged pointers which allow Fixnums to be treated as simple numeric values.
This may be going away in JDK9 as they claim they're eliminating primitive types in favor of an everything-is-an-object model.