Java 15 has made the ZGC, Z Garbage Collector a standard feature. It was an experimental feature till Java 15. It is low latency, highly scalable garbage collector.
ZGC was introduced in Java 11 as an experimental feature as developer community felt it to be too large to be released early.
ZGC is highly performant and works efficiently even in case of massive data applications e.g. machine learning applications. It ensures that there is no long pause while processing the data due to garbage collection. It supports Linux, Windows and MacOS.
With Java 16, ZGC Thread-Stack processing is moved from Safepoints to Concurrent Phase and improved its efficiency to great extent. Following are the enhancements made.
Thread-stack processing moved from ZGC safepoints.
Stack processing is made lazy, cooperative, concurrent, and incremental.
All other per-thread root processing are removed from ZGC safepoints.
HotSpot subsystems can lazily process stacks.