Curious what performance it has comparing to default VM from OpenJDK.
http://www.principledtechnologies.com/Red%20Hat/RHEL6_rhj_06...
11–20 of 105 posts
Curious what performance it has comparing to default VM from OpenJDK.
http://www.principledtechnologies.com/Red%20Hat/RHEL6_rhj_06...
So is this OpenJDK-derived? If so, too bad, I've been hoping for a truly independent implementation. If not, does it pass the TCK?
This is IBM's formerly-proprietary J9 JVM, which I believe was developed entirely from scratch, independently of Sun's HotSpot JVM. J9 actually has its roots in an earlier Smalltalk VM (VisualAge Smalltalk, I think). The source copyrights go back to 1991. Eclipse, of course, was what IBM started after abandoning VisualAge. It's not a JDK/JRE. J9 must be combined with OpenJDK to be able to run apps.
well yes and no. if you don't use anything from the standard class library (that's impossible) than not. what I also guess is that you need a java compiler, since it reads that it uses a ibm created "rom file" that comes from java bytecode.
what the most interesting thing about that vm is, is a shared class cache. which is like a *.so file, if one program loads a library and the library is already in memory another program won't add additional memory to the computer, this is a huge win, especially for memory hungry java applications (this already speeds startup extremly)
Hopefully OpenJ9 will meet with better success. On paper, it seems to meet the restrictions that Oracle currently imposes for TCK access, namely that it is available under a GPL license and that its class library is derived from OpenJDK.[3,4] And it comes from IBM, which has been able to put aside its differences with Oracle on OpenJDK in the past, when it became clear that Oracle would never support Harmony (which IBM previously backed).[5]
But when it comes to Oracle and intellectual property, who knows?
[1] https://en.wikipedia.org/wiki/Apache_Harmony#Difficulties_to...
[2] http://www.apache.org/jcp/sunopenletter.html
[3] http://openjdk.java.net/groups/conformance/JckAccess/
[4] http://openjdk.java.net/legal/octla-java-se-8.pdf
[5] http://blog.joda.org/2010/10/no-java-7-end-game_4619.html
Curious what performance it has comparing to default VM from OpenJDK.
There was a redhat sponsored benchmark released 3-4 years ago, should however note that J9 was developed by IBM, which owns the Power architecture and this test was run on Intel. http://www.principledtechnologies.com/Red%20Hat/RHEL6_rhj_06...
'Even' on Intel, we go back and forth on benchmarks, depending on what each side is focusing on. Some metrics take longer than others to flip-flop but both sides have some very smart people constantly working to make performance better.
And FWIW, we have a team dedicated to making x86 perform well.
Two things to consider about this particular result:
1) This is running on what I expect to be our pxa6470sr4-20130207_01 release (if I'm interpreting the 'java-x86_64-70-4' correctly). There has been a ton of work on J9 since then, and I would be very leery of using that result as canonical for 2017
2) SPEC jbb2013 was retracted due to a flaw: https://www.spec.org/jbb2013/defectnotice.html . I don't know what the implications of that flaw would be on these benchmark results (if any) but I would want more data before concluding anything.
That said, the 'other side' does do some really good work, and does score wins. We work hard to do the same. Even on Intel ;)
Earlier quoted context omitted.
This is IBM's formerly-proprietary J9 JVM, which I believe was developed entirely from scratch, independently of Sun's HotSpot JVM. J9 actually has its roots in an earlier Smalltalk VM (VisualAge Smalltalk, I think). The source copyrights go back to 1991. Eclipse, of course, was what IBM started after abandoning VisualAge. It's not a JDK/JRE. J9 must be combined with OpenJDK to be able to run apps.
> It's not a JDK/JRE. J9 must be combined with OpenJDK to be able to run apps. well yes and no. if you don't use anything from the standard class library (that's impossible) than not. what I also guess is that you need a java compiler, since it reads that it uses a ibm created "rom file" that comes from java bytecode. what the most interesting thing about that vm is, is a shared class cache. which is like a *.so file…
Earlier quoted context omitted.
> It's not a JDK/JRE. J9 must be combined with OpenJDK to be able to run apps. well yes and no. if you don't use anything from the standard class library (that's impossible) than not. what I also guess is that you need a java compiler, since it reads that it uses a ibm created "rom file" that comes from java bytecode. what the most interesting thing about that vm is, is a shared class cache. which is like a *.so file…
They already have a compiler, ECJ, which is included in Eclipse and Tomcat among other things.
Earlier quoted context omitted.
They already have a compiler, ECJ, which is included in Eclipse and Tomcat among other things.
ECJ is in Tomcat? What for?
To be more precise, a compiler is required for JSP, which is a mixture of html and java that is compiled to servlets.
Theoretically you can compile them ahead of time (before deployment) but as far as I can tell no-one does.
Earlier quoted context omitted.
> It's not a JDK/JRE. J9 must be combined with OpenJDK to be able to run apps. well yes and no. if you don't use anything from the standard class library (that's impossible) than not. what I also guess is that you need a java compiler, since it reads that it uses a ibm created "rom file" that comes from java bytecode. what the most interesting thing about that vm is, is a shared class cache. which is like a *.so file…
They already have a compiler, ECJ, which is included in Eclipse and Tomcat among other things.
I mean ecj is also not included in openj9, so if you want to strip out any openjdk dependency one would need at least a really basic class lib and a compiler (either ecj or anything else), (but I also think it hears that openj9 includes a compiler https://www.youtube.com/watch?v=96XoG6xcnys at the end he only says that they use the class library from openjdk, but he does not say if anything else and it also looks like it only uses that).