-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Support for ZGC (garbage collector) #2149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
We would also like to see support for ZGC in graal. For the problem of Nashorn being deprecated however @brettwooldridge there's also the option to bring in graaljs as a library using a standard jdk by bringing in these two libraries: |
@mk Thanks for the reply, I wasn't aware that the graalvm JavaScript support could be used "standalone" alongside the standard jdk. I guess it makes sense, but just didn't occur to me. Of course, the ultimate goal of this request was so that we can use GraalVM across the board (for Java and JavaScript compilation) along with ZGC. |
@bobmcwhirter @adinn Any thoughts on the priority of this, feasibility, or remaining hurdles (if any)? |
Tracked internally with GR-27475. |
What is the current state of the issue? |
Still on the to do list but no current activity. As always, external contributions are welcome. |
@dougxc Same question, except now with respect to ShenandoahGC. We have switched from ZGC to Shenandoah for stability reasons. |
No change from the Graal team in terms of activity on this front at this time. |
I have an open WIP PR #2426, Dimitris Bakalios from the University of Crete (IIRC) is working on it, no ETA. Last time I heard of him it was running some workloads, but crashed on some others. |
Thanks @rkennke - that PR had fallen off my radar. Please ping me once it's ready for active review. |
In fact, although nashorn is not part of JDK now, it is still maintained: openjdk/nashorn. Nashorn 15.3 has just been released and now supports Java 17. |
Getting a little offtopic, but this is actually news to me and should definitely be updated on OpenJDK's JEP 372 page because it suggests no active maintenance is taking place on the Nashorn Engine:
|
https://www.graalvm.org/release-notes/JDK_17/
🎉 |
That's great! |
I guess the issue isn't closed as Generational ZGC support is planned for the jdk21 build ? |
#6854 The issue was closed as marked as "done" but it seems unachived afaik ? |
That is correct. We hope to have Generational ZGC support in the GraalVM 24.1 release but if not, then it will almost certainly be in the GraalVM 24.2 release. |
ZGC Support
Is your feature request related to a problem? Please describe.
I work on a project where we have a monitoring system with very low tolerance for inaccurate/delayed measurement. That is not to say a real-time requirement, but delays we experienced under G1 exceeding 100ms where undesirable, and delays under G1 exceeding 1000ms extremely problematic.
ZGC has been our savior in this regard. We rarely see GC times above 2ms, and 99.9% less than 100ms.
We are currently on Java 11, and in some minor edges of the project we use Nashorn. Unfortunately, Nashorn has been deprecated and will disappear soon. GraalVM is the recommended path to continued support for JavaScript integration into Java.
Which leads to the conflict of needing GraalVM as well as ZGC in order to move off of Java 11. Luckily, Java 11 is LTS, but LTS does not mean forever.
Describe the solution you'd like.
Support for ZGC in GraalVM. In our case, we do not need native compilation support for ZGC, merely runtime support.
Describe who do you think will benefit the most.
Anyone using GraalVM in a high-speed transaction environment.
Describe alternatives you've considered.
Staying on Java 11, or switching Nashorn out for the last supported release of Rhino if we have to move to Java 17 LTS.
@bobmcwhirter @adinn I saw back last year your comments in #1278 regarding generating appropriate barriers for alternative GC to work. Basically this, I was told on the ZGC mailing list back in 2018, was the gating factor getting ZGC to work with GraalVM. Given that (maybe?) the barrier generation is there now, possibly ZGC is finally ready for integration and testing?
The text was updated successfully, but these errors were encountered: