4 ms·
From what I understand the goals are similar but the approaches are different. - Shenandoah uses Brooks-style forward pointers whereas ZGC uses colored pointer
by needusername 8y ago
From 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. Meaning Shenandoah has a bigger impact on heap footprint but less offheap data meaning the heap size is closer to the RSS.
- Shenandoah runs on Windows and macOS if you build from source, 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 and has short cuts if you application is young-only.