Shenandoah en OpenJDK 17: implementación de pausas de GC de menos de un milisegundo
(developers.redhat.com)- El proyecto de recolección de basura Shenandoah tiene como objetivo reducir el tiempo de pausa durante el GC
→ Mejora la capacidad de respuesta mediante procesamiento concurrente
→ JDK12: se introdujo Concurrent Heap Evacuation, lo que permite limpiar el heap sin detener la aplicación
→ JDK14: Concurrent Class Unloading
→ JDK16: Concurrent Reference Processing
→ JDK17: con la introducción de Concurrent Thread-stack Processing, se hicieron posibles pausas de menos de un milisegundo
2 comentarios
ZGC también es bastante conocido.
Sin embargo, utiliza 64 bits en el puntero de las variables (https://img1.daumcdn.net/thumb/R1280x0/…), por lo que solo puede usarse en sistemas operativos de 64 bits.
Hace tiempo estuve investigando sobre el rendimiento de VM de lenguajes de scripting,
y en el caso de V8 de JS, dicen que funciona con principios como los siguientes.
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
Introducción a las características y al algoritmo básico de Shenandoah GC
https://dev-punxism.tistory.com/entry/Shenandoah-gc
https://meetup.toast.com/posts/234
Yo solo conocía Shenandoah por la letra de la canción Take Me Home, Country Roads...