Red Hat ha propuesto la inclusión de un nuevo recogedor de basura para el OpenJDK orientado a heaps enormes. Según Red Hat Este nuevo recogedor de basura (GC), con nombre Shenandoah, cuando se ejecute provocaría pausas con una duración inferior a 10 ms en heaps de hasta 100 GB.
Shenandoah está orientado uso sólo en situaciones donde estemos trabajando con una máquina con gran cantidad de cores y memoria RAM. Según sus propios autores, no tiene sentido emplear este GC si estás trabajando con un heap de menos de 20 GB o si la máquina en la que se está usando tiene menos de ocho cores.
También advierten que Shenandoah provoca un decremento en el rendimiento total de la aplicación que puede estar cercano a un 10% cuando se le compara con la misma aplicación funcionando con los actuales GCs y no hay ningún tipo de pausa ocasionada por el GC. Si los actuales GCs se disparan, entonces el rendimiento total de Shenandoah es similar al de los GCs actuales, pero con la ventaja de que las pausas que puede provocar en la aplicación tienen una duración considerablemente inferior cuando se trabaja con heap grande.
¿Veis alguna utilidad para un GC de este tipo en vuestras aplicaciones? ¿Os habéis encontrado alguna vez con la necesidad de tener que tunear el GC para evitar pausas por estar usando un heap muy grande?