Los encabezados de objetos compactos de Java se convierten en una característica de producto

2025-05-22

El JEP 519 promueve la característica experimental 'Encabezados de objetos compactos' a una característica de producto completa en Java. Inicialmente introducida en JDK 24 para optimizar el diseño del encabezado del objeto y mejorar el rendimiento, se ha sometido a pruebas exhaustivas en Oracle y Amazon, demostrando su estabilidad y sus ganancias de rendimiento. La bandera `-XX:+UnlockExperimentalVMOptions` ya no es necesaria para la activación. Se planean expansiones futuras para más bits de encabezado de objeto, con los Proyectos Valhalla y Lilliput proporcionando soluciones.

Leer más
Desarrollo

Inicio más rápido de Java con mejoras en el perfil del caché AOT

2025-05-11

Esta mejora reduce significativamente el tiempo de calentamiento de las aplicaciones Java recopilando perfiles de ejecución de métodos durante las ejecuciones de entrenamiento de la aplicación y almacenándolos en la caché AOT. Al iniciar en producción, el compilador JIT puede usar inmediatamente estos perfiles para generar código nativo, eliminando la espera para la recopilación de perfiles y dando como resultado un inicio y un rendimiento máximo más rápidos. Esta técnica no requiere cambios de código y es compatible con los comandos de creación de caché AOT existentes. Los experimentos muestran una reducción del 19% en el tiempo de calentamiento para un programa de ejemplo simple.

Leer más
Desarrollo Caché AOT

Java fortalecerá la inmutabilidad de los campos finales

2025-03-31

Para mejorar la seguridad y el rendimiento de los programas Java, el JDK planea fortalecer la inmutabilidad de los campos finales. Actualmente, la reflexión profunda puede modificar los campos finales, lo que viola la intención original de la palabra clave final y limita la optimización de la JVM. Las versiones futuras prohibirán por defecto que la reflexión profunda modifique los campos finales y emitirán advertencias. Los desarrolladores pueden habilitar selectivamente la modificación de los campos finales utilizando la opción `--enable-final-field-mutation`, pero se recomienda evitarla en la medida de lo posible. Esta medida tiene como objetivo mejorar la función de "seguridad por defecto" de Java y mantener la coherencia con el diseño de las clases de registro.

Leer más

JEP 483 de Java: La carga y vinculación anticipada de clases aumenta el tiempo de inicio

2024-12-22

El JEP 483 mejora significativamente el tiempo de inicio de las aplicaciones Java cargando y vinculando las clases de las aplicaciones por adelantado cuando se inicia la JVM HotSpot. Esto se logra monitoreando una única ejecución de la aplicación, almacenando las formas cargadas y enlazadas de todas las clases en una caché para su reutilización en ejecuciones posteriores. Esta característica no requiere cambios de código y ofrece mejoras sustanciales de velocidad para aplicaciones de servidor grandes, como Spring PetClinic, que muestra una reducción del 42% en el tiempo de inicio. Si bien actualmente es un proceso de dos pasos, las versiones futuras simplificarán la creación de la caché a un solo paso y ofrecerán una configuración de ejecución de entrenamiento más flexible.

Leer más
Desarrollo