Shenandoah no OpenJDK 17: implementação de pausas de GC abaixo de um milissegundo
(developers.redhat.com)- O projeto Shenandoah Garbage Collection tem como objetivo reduzir o tempo de pausa durante o GC
→ Aumenta a responsividade por meio de processamento concorrente
→ JDK12: introduziu Concurrent Heap Evacuation, permitindo limpar o heap sem interromper a aplicação
→ JDK14: Concurrent Class Unloading
→ JDK16: Concurrent Reference Processing
→ JDK17: com a introdução de Concurrent Thread-stack Processing, passaram a ser possíveis pausas abaixo de um milissegundo
2 comentários
O ZGC também é bastante conhecido.
No entanto, ele aproveita os 64 bits nos ponteiros das variáveis (https://img1.daumcdn.net/thumb/R1280x0/…), então só pode ser usado em sistemas operacionais de 64 bits.
Há algum tempo eu tinha pesquisado sobre desempenho de VMs de linguagens de script,
e, no caso do V8 do JS, parece que ele funciona com os seguintes princípios.
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
Uma introdução às características e ao algoritmo básico do GC Shenandoah
https://dev-punxism.tistory.com/entry/Shenandoah-gc
https://meetup.toast.com/posts/234
Eu só conhecia Shenandoah pela letra da música Take Me Home, Country Roads..