Software

Ruby 2.6 integra nuevo compilador JIT, 1.7 veces mas rápido

Al igual que el año pasado con la versión 2.5, el equipo de Ruby acaba de anunciar la disponibilidad de la versión estable de Ruby 2.6 en estas vacaciones de Navidad. Un regalo muy bonito para los usuarios asiduos de esta aplicación.

El equipo de Ruby anuncia la integración de un nuevo compilador de Just-In-Time (JIT)

En esta nueva versión del lenguaje multiplataforma, el equipo de Ruby anuncia la integración de un nuevo compilador de Just-In-Time (JIT). La compilación JIT, también conocida como compilación dinámica o compilación sobre la marcha, generalmente se implementa para mejorar el rendimiento de un programa cuando se ejecuta. Para ello, el compilador JIT traduce primero el código fuente del programa a bytecode, y luego, en un segundo paso, transforma el bytecode en código nativo en tiempo de ejecución. Debe tenerse en cuenta que el bytecode se compilará en código nativo de acuerdo con la frecuencia de llamada de este código. Los bytecodes más utilizados se compilarán previamente en código máquina nativo para mejorar el rendimiento del programa ejecutado.

Con respecto al nuevo compilador JIT de Ruby, el equipo de Ruby explica que, a diferencia de los compiladores JIT tradicionales que trabajan en proceso, el compilador JIT de Ruby escribe código C en el disco y utiliza un compilador C común para generar código nativo. Según los ‘testers’ de Ruby 2.6, las pruebas de evaluación mostraron que los códigos compilados con el nuevo compilador JIT eran aproximadamente 1,7 veces más rápidos para cargas de trabajo con uso intensivo de CPU, siempre comparándolo con Ruby 2.5. Sin embargo, la ganancia de rendimiento obtenida con este nuevo compilador JIT no puede aplicarse también a las aplicaciones web. Todavía hay que seguir trabajando. Además, dado que todavía hay que hacer parches y mejoras, el compilador JIT ha sido desactivado por defecto y relegado a la fase experimental.

Junto a este nuevo compilador que aterrizó en esta última versión de Ruby 2.6, un nuevo módulo RubyVM::AbstractSyntaxTree que analiza una cadena de caracteres dada como código Ruby y devuelve nodos de árbol de sintaxis abstracta (ASA abreviado) ha sido añadido a Ruby 2.6. En detalle, esto se hace por el método parse_file que abre y analiza el archivo dado como código Ruby.

Más allá de estas nuevas características, también tenemos mejoras de rendimiento en varios niveles, como bloques que ahora son 2,6 veces más rápidos que en la versión 2.5 de Ruby o los métodos Fiber.yield y Fiber#resume que son aproximadamente 5 veces más rápidos en Linux de 64 bits.

Pueden descargar esta nueva versión desde el siguiente enlace.

Vía / Developez

Esta web utiliza cookies propias con finalidad funcional y de terceros para realizar el análisis de la navegación de los usuarios, mejorar mis servicios y mostrarte publicidad relacionada con tus preferencias mediante el análisis de tus hábitos de navegación. Si continúa navegando, se considera que acepta su uso.

Leer más