4 ms·
This seems to be the same as what Red Hat is working on with Shenandoah. I don't understand how the goals differ and from a 1000 ft, incomplete view, the basic
by uluyol 9y ago
This seems to be the same as what Red Hat is working on with Shenandoah. I don't understand how the goals differ and from a 1000 ft, incomplete view, the basic design seem similar too.
Is there anyone who can clarify?
- needusername 9y agoFrom what I understand the goals are similar but the approaches are different. - Shenandoah uses Brooks-style forward pointers whereas ZGC uses colored pointers and off-heap forwarding tables. - Shenandoah could in theory run on Windows, AFAIK this is a non-goal for ZGC. - Shenandoah tries to return unused heap to the OS wheres currently the recommendation for ZGC seems to be -Xms == -Xmx. In addition ZGC tripple maps the heap which can lead to interesting challenges in resource usage accounting. - None of them are generational although Shenandoah allows for custom policies. - Both of them seem to disable biased locking by default. I would guess the latency for deoptimizing is simply too large. - Shenandoah supports pinning objects in JNI criticals without disabling the GC. - Somewhat unsurprisingly ZGC introduces several HotSpot latency optimizations that will also benefit Shenandoah (thread-local handshakes, concurrent reference processing, ...).
- jerven 9y agoIn November Shenandoah turned biased locking back on [1]. Otherwise super post. [1] http://mail.openjdk.java.net/pipermail/shenandoah-dev/2017-November/thread.html http://mail.openjdk.java.net/pipermail/shenandoah-dev/2017-N...