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 -~----------~----~----~----~------~----~------~--~---
