Para reducir el tiempo de ejecución de la aplicación, la caché de código segmentado de Java se ampliaría con un montón de código «caliente» opcional para acomodar de forma compacta una parte de los métodos no perfilados, bajo un borrador de propuesta de mejora de JDK ahora flotando en la comunidad OpenJDK. Otra métrica de éxito del plan es la reducción de la fragmentación del código altamente optimizado en el caché de código.
Al extender el mecanismo de control del compilador de Java para marcar ciertos métodos como activos para que puedan compilarse en el montón de códigos activos, la propuesta separaría el código que se sabe que está activo, disminuiría la fragmentación del código seleccionado y reduciría el impacto negativo de la dispersión del calor del código compilado. sobre el rendimiento de las aplicaciones Java. También proporcionaría un control dependiente del contexto del método para colocar blobs compilados en C2 en el montón de código activo y proporcionaría una base para la posibilidad de perfilar y compactar el código utilizando la propia máquina virtual.
La propuesta del montón de código activo se basa en propuestas más antiguas para un caché de código segmentado y control del compilador. Ambos son de Kit de desarrollo Java 9, que se lanzó en septiembre de 2017. La motivación de la nueva propuesta es la premisa de que el código activo disperso es más lento. Algunas aplicaciones pueden perder su rendimiento debido al enorme caché de código JVM. Esto sucede bajo ciertas condiciones, como una gran cantidad de código compilado JIT, la presencia de una gran cantidad de código activo y código activo disperso por todo el caché de código.
La propia CPU impone sanciones por ejecutar grandes cantidades de código disperso, afirma la propuesta. En sistemas donde este problema es importante, no se puede resolver por otros medios, como páginas grandes. El grado de desaceleración depende de la cantidad de código activo, la escasez de ese código y el tipo de procesador.
La propuesta también enfatiza que no todo el código compilado se llama con frecuencia todo el tiempo y que la ubicación conjunta del código activo utilizando información del perfil puede mejorar el rendimiento. También es posible mejorar la política de compilación de código activo para mejorar el rendimiento y realizar un barrido más agresivo de código más frío para reducir el caché de código.
La propuesta del montón de código activo no ha sido designada para una versión específica de Java. La versión actual, JDK 22fue lanzado la semana pasada mientras JDK 23 vence en septiembre. JDK 23 sería un objetivo potencial para la propuesta del montón de código activo, aunque el plan podría posponerse para una publicación posterior.
Copyright © 2024 IDG Communications, Inc.