JDK 27: G1 se convierte en el recolector predeterminado en todos los entornos
JDK 27 G1/Parallel/Serial GC Changes
El lanzamiento de JDK 27 trae consigo el JEP 523, que hace de G1 el recolector de basura predeterminado en todos los entornos, reemplazando a Serial GC. Además, se han realizado mejoras significativas en G1, como el ajuste de los porcentajes de MinHeapFreeRatio y MaxHeapFreeRatio para evitar conflictos entre heurísticas de tamaño de heap, y la corrección de un problema que impedía la reclamación de objetos humongous referenciados débilmente. Parallel GC también recibe correcciones, como la capacidad de disminuir el umbral de tenuring adaptativo y una mejor expansión del heap ante asignaciones grandes repetidas. Se incluyen cambios en el dimensionamiento de TLAB y mejoras en el registro de deduplicación de cadenas.
G1 ya no ajusta el tamaño del heap después de un Full GC basándose en los porcentajes (arbitrarios) de -XX:MinHeapFreeRatio y -XX:MaxHeapFreeRatio; sus valores predeterminados se han establecido en 0% y 100% respectivamente, para que no interfieran con otras heurísticas de ajuste.