What optimizing efforts are worthwhile on generated bytecode given the 
optimizing capabilities of 
the JIT?  I'm having trouble finding an explicit or definitive list of 
optimizations, but trying to 
be clever about method inlining is pretty clearly wasted effort.  I can't find 
any documentation on 
it, but I'm assuming the JIT also takes care of constant folding, strength 
reduction, and dead code 
removal, since they're so straightforward.  Or am I wrong, and the JIT assumes 
the compiler author 
applied those filters already?

Is it worthwhile to recognize tail calls and turn them into GOTOs, or is that 
another thing the JIT 
will take care of?  What about loop unrolling?  Branch ordering?

And even if the JIT takes care of things, there's presumably a cost for having 
it do them -- is it 
worth applying the optimizations simply to save the JIT the effort and let it 
focus on more involved 
work?

How do I even get my hands on some metrics to test these questions out for 
myself?

~~ 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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/jvm-languages?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to