Eclipse J9 is a big deal
by Richard Pajerski
Posted on Friday March 15, 2019 at 11:59PM in Technology
Having developed with Java for a number of years in various environments (Notes/Domino, Tomcat, ActiveMQ, Android, desktop, etc.), I was initially skeptical when I read this article and watched the video about the recently-improved Eclipse OpenJ9: https://developer.ibm.com/videos/introduction-to-eclipse-openj9-and-adoptopenjdknet/
Yes, Java has incrementally improved over time but the claims here seemed a bit over the top. To think I might get both noticeably faster startup *and* up to 50% memory reduction just by switching to J9 seemed to be a bit too optimistic. But after downloading (adoptopenjdk.net) and giving it a spin, I was not disappointed.
Sure enough, out-of-the-box startup time for Netbeans 8.2 on Windows 8.1 increased dramatically against Oracle Java 1.8.0_191 (running quad-core I7 on SSD). There was no point in taking measurements -- it was up and ready in three seconds! This didn't seem possible with Netbeans but there it was. Everything worked the same as before ... only faster. Then the real shocker: RAM usage went from roughly 650M down to 268! Huh? If I can eliminate that much RAM usage for hosted server side deployments, it's going to translate into real cash savings.
On top of the performance upgrade and memory savings, I immediately noticed that Swing is visually better in J9 than OpenJDK [edit: with the HotSpot VM]. In particular, the default font rendering is really nice! In the past, OpenJDK has generally lagged behind Oracle Java for desktop applications and still does; but to my eyes, J9 is now at visual parity with Oracle (or perhaps better).
I realize that the J9 has been the JVM in Notes/Domino all these years but I've never attempted to benchmark it against other JVMs since IBM never really promoted it as a JDK for Windows. I'm currently using 9.0.1 FP10 which uses build 184.108.40.206 of J9:
Hopefully, IBM can manage to get the latest J9 into an upcoming fixpack. I sure have lots of Notes and Domino Java code that could benefit from it.
A big congratulations and thank you to Mark Stoodley and all the other engineers and players behind this release!
A few months late to respond as I only just discovered this post, but I'm really happy to hear that Eclipse OpenJ9 delivered on its promises for you! Thank you very much for taking the time to write this article to share your experience. An article like this is a tremendous give back to our community and we all *really* appreciate it!
Honestly, this result you've written about is thanks to a huge group of developers that have contributed over the course of 20 years to the creation and continuing advancement of the OpenJ9 JVM (and its underlying Eclipse OMR) technology, so while I'll permit myself a short blush of pride at the individual call-out :) , it is really that amazing group of developers that deserve your praise! And on their behalf, I thank you! I know your article made a lot of people smile happily when we discovered it!
Posted by Mark Stoodley on June 13, 2019 at 10:21 AM EDT #
Hi Mark -- thanks for posting!
Well you guys have earned the praise -- this is really an impressive piece of engineering.
Since my original posting in March, I've replaced several Oracle Java installs with OpenJ9 and am quite pleased with the results. The server hosting this blog is now running on OpenJ9 and the performance improvement was immediately noticeable. But the icing on the cake was the reduced RAM usage -- this one instance alone is going to save me at least $30/year on the hosting bill.
Thanks also for your insights on the IBM SDK. The latest fixpacks for the Notes client (10.0.1 FP2 released May 2019) don't seem to have changed the OpenJ9 rev level which dates to August 2018. Hopefully fixpack releases will pick up pace a bit after the HCL transition.
Looking forward to using OpenJ9 everywhere!
Posted by Richard Pajerski on June 13, 2019 at 03:13 PM EDT #
That's awesome! Very happy to hear it!
Posted by Mark Stoodley on June 13, 2019 at 04:49 PM EDT #