Llegamos a ustedes gracias a:



Noticias

Los condensadores prometen acelerar los programas Java

[26/10/2022] El Proyecto Leyden, un ambicioso esfuerzo para mejorar el tiempo de inicio, el rendimiento y el consumo de recursos de los programas Java, ofrecerá condensadores. Un condensador es un código que se ejecuta entre el tiempo de compilación y el tiempo de ejecución, y transforma el programa original en un programa nuevo, más rápido y potencialmente más pequeño.

En un artículo publicado en Internet el 13 de octubre, Mark Reinhold, arquitecto jefe del grupo de plataformas Java de Oracle, afirma que los tiempos de arranque y calentamiento de un programa y su huella pueden mejorarse desplazando temporalmente parte de sus cálculos a un punto posterior del tiempo de ejecución, o retrocediendo a un punto anterior al tiempo de ejecución. El rendimiento podría aumentar aún más restringiendo algunos cálculos relacionados con las funciones dinámicas de Java, como la carga de clases, la redefinición de clases y la reflexión, lo que permitiría un mejor análisis del código e incluso una mayor optimización.

[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]

El proyecto Leyden implementará estas transformaciones de desplazamiento, restricción y optimización como condensadores, señaló Reinhold. Además, se investigarán nuevas características del lenguaje que permitan a los desarrolladores desplazar ellos mismos los cálculos, lo que permitirá una mayor condensación. Sin embargo, la especificación de la plataforma Java tendrá que evolucionar para soportar estas transformaciones. Las herramientas y los formatos del JDK para los artefactos de código, como los archivos JAR, también tendrán que ampliarse para admitir los condensadores.

El modelo de condensación ofrece a los desarrolladores una mayor flexibilidad, sostuvo Reinhold. Los desarrolladores pueden elegir qué condensadores aplicar y, al hacerlo, decidir si aceptan, y cómo, las restricciones que limitan el dinamismo natural de Java. El modelo de condensación también da a las implementaciones de Java una libertad considerable. Mientras un condensador conserve el significado del programa y no imponga restricciones excepto las aceptadas por el desarrollador, una implementación tendrá una amplia libertad para optimizar el resultado.

La mejor manera de mejorar el tiempo de arranque y calentamiento y la huella de carbono es identificar los cálculos que pueden eliminarse sin más, según Reinhold. En su defecto, el cálculo puede desplazarse hacia atrás o hacia delante en el tiempo. Este concepto de desplazamiento de la computación en el tiempo no es nuevo. Las implementaciones de Java ya tienen muchas funciones para desplazar el cálculo. Por ejemplo, el plegado de constantes en tiempo de compilación desplaza el cómputo hacia atrás en el tiempo, desde el tiempo de ejecución hasta el tiempo de compilación, y la recolección de basura desplaza la recuperación de memoria hacia adelante en el tiempo. Otros mecanismos de desplazamiento de la computación son opcionales, como la computación anticipada y la compartición de datos de clase.

El proyecto Leyden estuvo en discusión durante más de dos años antes de empezar a avanzar a principios de este año. El proyecto está patrocinado por los grupos de la máquina virtual HotSpot y de las bibliotecas centrales en el ámbito del desarrollo de Java.