What do you mean by "true fixnums"?

~~ Robert.

Charles Oliver Nutter wrote:
> We're always trying to make JRuby faster, and I think we've done a 
> pretty good job. But a recent contender has shown me some areas we 
> really need to improve.
> 
> MacRuby recently started to implement their backend compilation on top 
> of LLVM, and it seems to be paying substantial dividends for 
> performance. On integer math benchmarks, they're several times faster 
> than JRuby. On closure-performance benchmarks, they're at least twice as 
> fast. Most of their performance boost seems to come from a couple 
> specific optimizations:
> 
> * True fixnums! I don't think we'll ever be able to compete on math 
> performance until we either get fixnums in the JVM or have enough 
> information to eliminate constructing them. My early attempts to do this 
> have involved adding some "long RHS" call paths, which certainly helps. 
> But we're still constructing too many fixnums, and nothing seems to get 
> around that fact. Even Java 7 escape analysis combined with my dyncall 
> inlining work has no effect.
> 
> * Something like alloca. MacRuby generally allocates runtime structures 
> with alloca, which appears to reduce their overhead substantially. In 
> our case, closures are allocated with normal heap-based objects, and we 
> pay the full cost for doing so. If we could reify local variables into a 
> heap structure lazily, or stand up a scoping structure that only lived 
> on the stack, we might get closer.
> 
> * Lack of an optimizing compiler framework for JVM. The truth is that 
> we're expecting too much of the JVM. We need a better compiler framework 
> that can do some type inference, constant propagation, etc, and be aware 
> of what bytecode and runtime logic optimizes well. The work Tobias is 
> starting on ssa-compiler will be important...we need to find a way to 
> move it along faster. I have a couple books and papers to read so I can 
> be useful in this regard.
> 
> I'd like to hear what other languages, especially dynamic languages, are 
> doing to take the next performance steps. I'd also like input on what we 
> can do to continue improving JRuby, and hopefully improve the state of 
> dynlangs on JVM at the same time.
> 
> - Charlie
> 
> > 
> 

-- 
~~ Robert Fischer.
Grails Training        http://GroovyMag.com/training
Smokejumper Consulting http://SmokejumperIT.com
Enfranchised Mind Blog http://EnfranchisedMind.com/blog

Check out my book, "Grails Persistence with GORM and GSQL"!
http://www.smokejumperit.com/redirect.html

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "JVM 
Languages" group.
To post to this group, send email to jvm-languages@googlegroups.com
To unsubscribe from this group, send email to 
jvm-languages+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jvm-languages?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to