Shenandoah in OpenJDK 17: Implementierung von GC-Pausen unter einer Millisekunde
(developers.redhat.com)- Das Ziel des Shenandoah-Garbage-Collection-Projekts ist es, die Pausenzeiten während der GC zu reduzieren
→ Durch Concurrent-Verarbeitung wird die Reaktionsfähigkeit erhöht
→ JDK12: Einführung von Concurrent Heap Evacuation, wodurch das Bereinigen des Heaps ohne Anhalten der App möglich wird
→ JDK14: Concurrent Class Unloading
→ JDK16: Concurrent Reference Processing
→ JDK17: Durch die Einführung von Concurrent Thread-stack Processing werden Pausen unter einer Millisekunde möglich
2 Kommentare
ZGC ist offenbar auch ziemlich bekannt.
Allerdings nutzt es 64 Bit in den Zeigeradressen der Variablen (https://img1.daumcdn.net/thumb/R1280x0/…) und ist daher nur auf 64-Bit-Betriebssystemen nutzbar.
Früher hatte ich mich einmal im Zusammenhang mit der VM-Performance von Skriptsprachen damit beschäftigt,
und im Fall von V8 für JavaScript soll es nach folgendem Prinzip funktionieren.
https://v8.dev/blog/concurrent-marking
https://v8.dev/blog/orinoco
https://v8.dev/blog/trash-talk
https://v8.dev/blog/high-performance-cpp-gc
Eine Einführung in die Merkmale von Shenanadoah GC und in den einfachen Algorithmus
https://dev-punxism.tistory.com/entry/Shenandoah-gc
https://meetup.toast.com/posts/234
Bisher kannte ich Shenandoah nur aus dem Songtext von „Take Me Home, Country Roads“..