Replies: 1 comment
-
Hi @kiwi1969,
Cool! I assume it runs on OpenJ9?
The only difference between the
JVMCI is an OpenJDK feature. In fact, we are about to improve our docs and explain how to enable Runtime Compilation on OpenJDK.
Correct. Even though OpenJ9 does not support JVMCI, GraalJS still works but it is not runtime-optimized by the Graal compiler. So you essentially only get GraalJS interpreter performance, which may very well be good enough for your use cases.
GraalVM CE, Oracle GraalVM, Oracle JDK, and OpenJDK all support JVMCI so GraalJS can be runtime-optimized on these runtimes. You can use GraalVM CE, but can also can use an OpenJDK build. For best performance, you can also use Oracle GraalVM which performs additional compiler optimizations.
GraalVM CE doesn't need additional flags to enable runtime compilation compared with OpenJDK. It also ships libgraal (the native image version of Graal) which is slightly faster than jargraal (the JAR version of Graal). Hope this helps! -- Fabio |
Beta Was this translation helpful? Give feedback.
-
I am confused about the actual differences between the GraalJS Enterprise and the Community Edition, and how they relate to my situation, as described below.
I am developing an application on the Z/OS platform, where GraalVM does not exist, so am forced to use IBMJDK (which is a patched version of OpenJDK using OpenJ9).
I patched the code I pulled from GitHub, to not outright fail on Z/OS due to "Unsupported Platform", and I see that GraalJS seems to run fine on both MacOS and Z/OS
I am unsure whether I built for Community or for Enterprise (I just did the default builds without special options), but think I possibly built for community, as there is no jar with "enterprise" in the name.
What I have seems to work fine, bit I see that JVMCI only works for me on MacOS, when using GraalVM runtime, and runs without JVMCI when on OpenJDK runtime.
I was assuming anyhow that on OpenJDK the JVMCI would not work for me, as seemed to be a feature of GraalVM.
Also on Z/OS, I have no libraries compiled, so it falls back to interpreter anyhow. Also OpenJ9 doesn't support the JVMCI optimization that Hotspot uses, so we are stuck with OpenJ9 AOT compilation and caches here.
But then I saw JEP 243 to allow compilers on OpenJDK
So, ignoring Z/OS and OpenJ9, does GraalJS actually support JVMCI on OpenJDK, and if so, do I then have to use the Community Edition of GraalJS ?
Even if OpenJDK doesn't support the JVMCI functionalty, should I still be using Community Edition (considering Enterprise seems to add no additional value to OpenJDK users)?
Beta Was this translation helpful? Give feedback.
All reactions