Ein neuer Garbage Collector für Java: Oracle stellt Z Garbage Collector Open Source

© Shutterstock / Miceking
Ein neuer Garbage Collector für Java steht in den Startlöchern. Unter dem OpenJDK-Projekt ZGC soll der sogenannte Z Garbage Collector, der bisher intern von Oracle entwickelt wurde, Open Source weitergeführt werden.
Was kann der Z Garbage Collector?
Nebenläufig, Single-Generation, Regions-basiert, inkrementell – so beschreibt Per Liden, Mitglied des HotSpot GC Teams bei Oracle, den ZGC in seiner Ankündigung auf der OpenJDK-Mailingliste. Optimiert ist der ZGC für sehr große Heaps und geringe Latenzzeiten. Mehrere Terabyte große Heaps sollen verarbeitet werden können, wobei die Garbage-Collector-Pausen weniger als 10 Millisekunden beanspruchen sollen.
Durch die Nutzung von Load Barriers und Colored Object Pointers ist es dem Z Garbage Collector möglich, nebenläufige Operationen wie Objekt-Neuzuweisungen auszuführen, während Java-Threads auf Anwendungsebene weiterlaufen. Die berüchtigten „Stop-the-World“-Phasen sollen auf das Root-Scanning beschränkt bleiben. Garbage-Collector-Pausen sollen sich dadurch bei steigender Heap- oder Live-set-Größe nicht verlängern.
Wie Liden, der auch Initiator des Projektes ist, weiter ausführt, ist der ZGC bereits in der Lage, typische Aufgaben wie Marking, Referenz-Bearbeitung (java.lang.ref.*), Relokalisierung/Komprimierung nebenläufig zu erledigen. Derzeit arbeite das Team daran, weitere Garbage-Collector-Phasen, namentlich Weak Root Processing (StringTable, JNIWeakGlobalRefs) und Class Unloading, nebenläufig zu gestalten.
Die Qual der Wahl
Die Open-Source-Stellung des ZGC kann als weiteres Zeichen für Oracles angekündigte Strategie gesehen werden, einst proprietäre Projekte und Tools quelloffen im Rahmen des OpenJDK-Projektes zu entwickeln. Beispielsweise soll der Java Flight Recorder – bislang Teil des kommerziellen Oracle JDK – Open Source zur Verfügung gestellt werden.
Im Raum der Garbage Collectoren für Java stellt der ZGC eine Alternative zu den „offiziellen“ Hotspot Garbage Collectoren ParallelGC und dem seit Java 9 verfügbaren G1 Garbage Collector dar. Im Bereich der Niedriglatenz-Kollektoren steht ZGC dem ebenfalls im OpenJDK entwickelten Shenandoah Collector sowie der von Azul Systems bereitgestellten Zing JVM gegenüber.
Das ZGC-Projekt wurde als neues OpenJDK-Projekt unter der HotSpot-Sponsor-Gruppe vorgeschlagen. Die Projektleitung soll Per Liden übernehmen. Mitglieder des OpenJDK können bis zum 8. November über eine Annahme des Projektes abstimmen.
Hinterlasse einen Kommentar