Earlier quoted context omitted.
I tried some quick tests using a fully AOT, short-running thing we run in house. Here the cost is the set-up of JVM and loading of Clojure stuff (CentOS 7 Vagrant VM on my Mac). J9: time ./jdk-9+181/bin/java -client -jar l2i-0.1.0-SNAPSHOT-standalone.jar real 0m1.987s user 0m3.383s sys 0m0.161s time ./jdk-9+181/bin/java -server -jar l2i-0.1.0-SNAPSHOT-standalone.jar real 0m2.949s user 0m5.452s sys 0m0.167s OpenJDK 8:…
Apparently there's an option in J9 called -Xquickstart, have you tried that?
Eclipse OpenJ9 – Open-source JVM
91–100 of 105 posts
Re: Eclipse OpenJ9 – Open-source JVM
#92Let's get straight to the really important question, can J9 or AOT help maybe just a little with clojure startup time woes?
I'd be interested in seeing whether that holds true for OpenJ9.
[0] https://github.com/dsyer/spring-boot-startup-bench/tree/mast...
Re: Eclipse OpenJ9 – Open-source JVM
#93So IBM has OpenJ9 and OMR, Oracle has Graal and Truffle. The JVM space is suddenly getting very interesting. But my question is, why now? While OMR did opened up a year ago it didn't seems to have gained any traction. Then there was the JavaEE last week opened also going to Eclipse, which is strange because it has always been IBM going to Eclipse and Oracle goes to Apache. Not to mention the OpenJDK builds https://bl…
J9 was largely used for IBM products which means it wasn't exposed to or tuned for workloads outside. Opening it up is a very good thing.
OMR is the foundation for J9, and it tackles the issues that come up again and again in dynamic runtimes:
1. Having a good threading, networking library, etc...
2. Having a battle tested industrial strength GC.
3. Having a JIT with easy to use optimizations out-of-the-box.
4. Having solid tooling for debugging and performance introspection.
Other runtimes such as Ruby, Python are at various stages of improving their GC or adding a JIT. The goal with OMR is to turn the battle tested components of J9 into pluggable components for these other runtimes. If tomorrow somebody wants to make a new Ruby or Python they shouldn't have to write their own GC or JIT, the same way nobody writes their own filesystem these days.
Oracle and IBM both see this and Truffle/Graal are different ways of attacking the same problem.
Re: Eclipse OpenJ9 – Open-source JVM
#94Earlier quoted context omitted.
That’s not an option, that was the whole point of the discussion.
If changing the JVM spec is an option, then surely so is using an existing spec. IBM has an RTSJ JVM[1], which, I believe, is based on J9. [1]: https://www.ibm.com/support/knowledgecenter/en/SSSTCZ_3.0.0/...
Re: Eclipse OpenJ9 – Open-source JVM
#95This is really interesting: CUDA support out of the box[1]. I've never seen this before, does any other JVM do it? [1] https://github.com/eclipse/openj9/tree/master/runtime/cuda
We wrote our own gc for cuda: https://github.com/deeplearning4j/nd4j/tree/master/nd4j-back...
as well as: https://deeplearning4j.org/workspaces
It also integrates with the JVM via weak references as well.
I can attest to: https://news.ycombinator.com/item?id=15269537 as well, you really need this 3rd party due to the frequency of how often cuda changes. We usually end up having to support the 2 most recent cuda versions.
Re: Eclipse OpenJ9 – Open-source JVM
#96Earlier quoted context omitted.
If changing the JVM spec is an option, then surely so is using an existing spec. IBM has an RTSJ JVM[1], which, I believe, is based on J9. [1]: https://www.ibm.com/support/knowledgecenter/en/SSSTCZ_3.0.0/...
Changing the JVM spec has a chance at being applied in future normal JVMs. Using an entirely separate solution has not.
Re: Eclipse OpenJ9 – Open-source JVM
#97This is really interesting: CUDA support out of the box[1]. I've never seen this before, does any other JVM do it? [1] https://github.com/eclipse/openj9/tree/master/runtime/cuda
We've actually implemented something like this ourselves with our linear algebra library. We wrote our own gc for cuda: https://github.com/deeplearning4j/nd4j/tree/master/nd4j-back... as well as: https://deeplearning4j.org/workspaces It also integrates with the JVM via weak references as well. I can attest to: https://news.ycombinator.com/item?id=15269537 as well, you really need this 3rd party due to the frequency o…
Re: Eclipse OpenJ9 – Open-source JVM
#98Earlier quoted context omitted.
I tried some quick tests using a fully AOT, short-running thing we run in house. Here the cost is the set-up of JVM and loading of Clojure stuff (CentOS 7 Vagrant VM on my Mac). J9: time ./jdk-9+181/bin/java -client -jar l2i-0.1.0-SNAPSHOT-standalone.jar real 0m1.987s user 0m3.383s sys 0m0.161s time ./jdk-9+181/bin/java -server -jar l2i-0.1.0-SNAPSHOT-standalone.jar real 0m2.949s user 0m5.452s sys 0m0.167s OpenJDK 8:…
Changes with Quickstart and Sharedclasses; # time for i in `seq 1 10`; do ./jdk-9+181/bin/java -client -Xquickstart -jar l2i-0.1.0-SNAPSHOT-standalone.jar; done real 0m18.571s user 0m30.429s sys 0m1.374s # time for i in `seq 1 10`; do ./jdk-9+181/bin/java -client -Xshareclasses -jar l2i-0.1.0-SNAPSHOT-standalone.jar; done real 0m16.642s user 0m19.483s sys 0m6.307s
Depending on how smoothly your experimentation went, you may also have to destroy a pre-existing cache before you really measure it (java -Xshareclasses:destroy) as it could have stale classes in it from an earlier run.
Would you be willing to open an issue with more details at http://github.com/eclipse/openj9/issues so we can look into it?
Re: Eclipse OpenJ9 – Open-source JVM
#99Earlier quoted context omitted.
Changing the JVM spec has a chance at being applied in future normal JVMs. Using an entirely separate solution has not.
It's not an entirely separate solution, but a Java standard. In any event, it's probably overkill if all you need are acceptable pause-times for games (RTSJ is for hard-realtime, safety-critical systems, where even 2us jitter may kill someone). There are "pauseless" GCs for the JVM (with 1-10ms max pause, depending on the GC) without hard realtime guarantees. We just need more free implementations.
Re: Eclipse OpenJ9 – Open-source JVM
#100Earlier 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.
> J9 must be combined with OpenJDK to be able to run apps. No IBM has its own full JDK that you can download, but the rest of it other than the JVM is not being open sourced at this time. That's my understanding at least.