Hey all! We're nearing the end of JRuby's 1.7 dev cycle, and I thought I should check in on the status of invokedynamic optimization work, update releases, and so on.
We've been getting more and more excellent reports of JRuby performance far exceeding people's expectations. A number of folks are already running JRuby 1.7dev in production because "it's the fastest thing they've ever seen". Kudos for all the excellent work up to this point! Of course, nothing's ever perfect :) Here's a few outstanding items I know have been in progress, but we haven't heard about recently. * indy classloading headaches The old NoClassDefFound problems seem to have gone away (or I just haven't been able to trigger them) but more recently I reported on this list about LinkageErrors that seemed to be caused by indy. I eventually patched around them, forcing more classes to be created and isolated...but I don't see how I could have been at fault in my code. * degraded performance is still a big issue I've run into a number of user cases where large methods end up significantly slower with indy than without. The performance of degraded (read: not jitted or not inlined) call sites and MH chains is so bad that some cases end up worse than JRuby's interpreted mode. I talked with Christian some weeks ago about a new plan to always compile the MH chain and do be smarter about what gets inlined into it, but I have not heard anything nor tracked progress since then. The performance is bad enough that I may have to install some tiering logic into JRuby's compiler so that methods over a certain size don't use invokedynamic at all. It will be messy. * u4? u6? If I remember right, the original plan was to have the first big round of optimizations in u2, and then the "right way" of optimizing along with stability issues fixed for u4. With u4 rapidly locking down (did I see something about phase 2?) where do we stand on getting indy updates into that release? As always, I'm standing by to help test, benchmark, profile, and read assembly dumps. I've not *yet* had a change to start working on Hotspot itself, but there may be some interesting changes coming up that will make it easier for me to do so :) Anyway, thanks for everything, and I hope indy work is still moving forward. It really is amazing. OH, P.S. I'm delivering a keynote at JAXConf 2012 on invokedynamic! I'd love to get as much information as possible about current and future status of indy in OpenJDK. - Charlie _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev