Shenandoah dans OpenJDK 17 : mise en œuvre de pauses GC inférieures à la milliseconde
(developers.redhat.com)- Le projet de ramasse-miettes Shenandoah vise à réduire les temps de pause pendant le GC
→ Améliore la réactivité grâce au traitement concurrent
→ JDK12 : introduction de Concurrent Heap Evacuation, permettant de nettoyer le tas sans arrêter l’application
→ JDK14 : Concurrent Class Unloading
→ JDK16 : Concurrent Reference Processing
→ JDK17 : l’introduction de Concurrent Thread-stack Processing rend possibles des pauses inférieures à la milliseconde
2 commentaires
ZGC est aussi assez connu.
Cependant, il exploite les 64 bits dans les pointeurs de variables (https://img1.daumcdn.net/thumb/R1280x0/…), donc il ne peut être utilisé que sur des systèmes d’exploitation 64 bits.
Il y a quelque temps, je m’étais renseigné sur les performances des VM de langages de script,
et dans le cas de V8 pour JS, le principe serait le suivant.
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
Présentation des caractéristiques de Shenandoah GC et de son algorithme de base
https://dev-punxism.tistory.com/entry/Shenandoah-gc
https://meetup.toast.com/posts/234
Jusqu’ici, je ne connaissais Shenandoah qu’à travers les paroles de la chanson Take Me Home Country Roads…