G1GC y ZGC son recolectores de basura incluidos en Java, pero priorizan objetivos distintos. G1 es el recolector predeterminado en la mayoría de configuraciones y busca equilibrar rendimiento total y pausas; ZGC está diseñado para baja latencia y hace gran parte del trabajo concurrentemente. Eso no convierte a ZGC en una solución automática para cualquier tirón: el rendimiento final depende del equipo, la memoria, la carga del mundo y otros cuellos de botella.

Qué significa “pausa” y qué no significa

Una pausa del recolector es una detención breve de los hilos de la aplicación durante una fase de recolección. La documentación de Oracle describe pausas máximas de ZGC inferiores a un milisegundo como objetivo/característica del recolector, pero no promete que Minecraft nunca tenga tirones: la carga de chunks, compilación, drivers, mods, CPU y almacenamiento también afectan la fluidez. G1 tampoco tiene una duración fija garantizada; su objetivo de pausa no es un límite estricto.

La guía de Oracle recomienda comenzar con el recolector que selecciona la JVM y ajustar primero el tamaño del heap si hace falta. Cambiar de recolector tiene sentido cuando observas pausas atribuibles al GC en los registros y una prueba controlada muestra una mejora que compensa cualquier cambio en rendimiento general.

Disponibilidad por versión de Java

Importante: Minecraft y cada cargador pueden requerir una versión concreta de Java. Conserva la configuración predeterminada del launcher si no tienes un motivo medido para cambiarla; no añadas -XX:+UseNUMA, -XX:+AlwaysPreTouch ni un tamaño fijo de heap como receta universal.

Cómo hacer una comparación útil

  1. Anota la versión de Minecraft, Java, cargador, mods, resolución, distancia de renderizado, memoria asignada y estado del equipo.
  2. Haz una copia del mundo y usa la misma zona y recorrido para ambas pruebas. Mantén iguales los ajustes; cambia solo el recolector.
  3. Repite el mismo recorrido varias veces y deja que el juego se caliente antes de registrar. Una sola partida no separa variación normal de una mejora real.
  4. Para ver actividad de GC, añade temporalmente -Xlog:gc a una instancia de prueba. Retira después el argumento si no necesitas el registro; este muestra eventos de GC, no FPS ni toda la causa de los tirones.
  5. Compara fluidez observada y registros bajo la misma carga. Si los tirones coinciden con eventos de GC y ZGC los reduce sin causar otros problemas, conserva el cambio. Si no hay esa relación, busca la causa en mods, renderizado o carga de chunks.

Lectura recomendada

Esta página explica diferencias documentadas; no publica un benchmark propio. Para recomendar una configuración concreta, hace falta medirla en una carga comparable.

👨‍💻

Redacción: fondue_x

Guías técnicas de Nebula Dev Studios

Esta guía se basa en la documentación de Oracle y las propuestas entregadas de OpenJDK enlazadas arriba. No presenta mediciones propias; los resultados de Minecraft dependen de la carga y el hardware, por lo que se recomienda validar cualquier cambio con registros y pruebas repetibles.