Php 8.0: más rápido que nunca con el compilador JIT

El compilador JIT será agregado a PHP 8. Desde PHP 7.0, se han realizado cambios para mejorar el rendimiento, pero esto será un nuevo avance para PHP. Esta gran característica fue desarrollada hace 2 años, pero el lanzamiento de PHP 8.0 se espera en menos de 1 año.

Que es JIT

Empezaremos diciendo que PHP es un lenguaje de scripts del lado del servidor, lo que significa que no necesitas compilar el código antes de que se ejecute (a diferencia de otros lenguajes como C/C++). En cambio, el módulo PHP lee el código y lo ejecuta. En otras palabras, no codificas el código para compilarlo en lenguaje de máquina para ejecutarlo, sino que codificas un script y luego lo envías a PHP para ser ejecutado en el lado del servidor con precisión.

PHP está equipado con una máquina virtual llamada Zend VM. ¿Por qué llamarla máquina virtual? Porque se comporta como un ordenador cuando ejecuta el código por sí mismo. Es responsable de leer y ejecutar el código PHP. Pero antes de eso, el código será leído y traducido de PHP a opcode, el lenguaje que Zend VM entiende. Entonces Zend VM será capaz de ejecutar ese código de operación. En esta figura se entenderá mejor el concepto.

Así que necesitamos un paso de «code parsing» primero y luego la interpretación. Lo aceleraremos, usando el llamado OPCache (Opcode Cache) que almacena los resultados de la fase de compilación, así que no será necesario volver a compilar la próxima vez. Así es como funcionaba PHP hasta ahora.

Bien, ahora hablemos del compilador JIT, significa que compilaremos el código fuente en un lenguaje de máquina para ejecutarlo. JIT significa «Just-In-Time», lo que significa que llevará tiempo compilar, en lugar de primero compilar y luego ejecutar. Cuando necesites iniciar el guion, será compilado en el momento.

Para PHP, el compilador JIT compilará el código fuente en código de máquina y ejecutará ese código en lugar de enviarlo a Zend VM para ser ejecutado. Así que ya no necesitamos un intérprete y, por supuesto, el código funciona aún más rápido.

¿Será realmente más rápido?

Este es un comparativo que muestra la velocidad de PHP con el compilador JIT comparado con la versión antigua. En el vídeo se utiliza un código para crear imágenes 3D.

Pero, CUIDADO, nadie ha usado nunca antes el PHP para crear imágenes 3D!!!

Dado que nuestro escript será compilado en el código de la máquina y será ejecutado directamente por la CPU en lugar del intérprete server side, los aumentos de velocidad serán principalmente sobre el inicio del código en sí y el uso de la CPU (por lo que requiere la potencia de la máquina). Pero la aplicación Web no tiene tal código, todo será delegado por el proceso de I/O (query de base de datos, carga de files, solicitud HTTP, etc.), la mayoría de las veces la aplicación no hace nada, sólo escucha para mostrar los resultados de la base de datos o la API, etc. Desafortunadamente, ahora mismo es poco probable que una aplicación web sea más rápida.

¿Para qué es el JIT?

Desde la versión 7.0 de PHP, el problema de rendimiento ha sido uno de los grandes problemas a resolver, en parte debido a la competencia de HHVM de Facebook (que también utiliza el compilador JIT). OPCache, estructura los datos, optimizando todo poco a poco para obtener el máximo rendimiento.

Además, el rendimiento de PHP como lenguaje de servidor ya puede considerarse bastante bueno, y no será tan lento como en el pasado. Así que es hora de expandir las capacidades de PHP a áreas como análisis de datos, renderizado 3D/2D, etc.

En el pasado, el código de alto rendimiento se escribía a menudo como una extensión en C/C++ en lugar de un paquete PHP. Por ejemplo, phpredis es siempre 6-7 veces más rápido que predis. Si el código PHP es compilado en vez de interpretado, obtendrá paquetes con el mismo rendimiento que las extensiones escritas en C/C++.

Esta es la principal razón por la que se eligió el compilador de JIT: esta es la mejor y potencial dirección a seguir.

A partir de la versión 8, PHP será significativamente más rápido, pero por el momento, la mayor parte del código PHP existente en el mundo mantendrá los estándares que todavía son aproximadamente lentos. Sin embargo, se abrirán nuevos desarrollos para la nueva versión de PHP compilada por JIT.


¿Quieres aprender a programar de manera profesional?

 

Te invitamos a formar parte de Azul School donde vas a tener acceso a cursos profesionales con certificado. Además tienes acceso a una red social de programadores donde puedes conocer gente de tu ciudad o país.

 

Si quieres acceder a todas las funciones te regalamos un descuento del 75% usando este cupón (no vas a encontrar este descuento en ningún otro lugar) Cupón: azulweb y lo puedes cambiar aquí: Haz clic aquí para cambiar el cupón del 75%.

 

También puedes probar la plataforma de forma gratuita y obtener un curso gratuito aquí: Haz clic aquí para probar la plataforma de forma gratuita.


Ernesto Mota

Ernesto Mota

Nací en el d.f., sigo siendo defeño, hoy radico en la hermosa ciudad de Cuernavaca, Morelos, soy Ing. en Sistemas computacionales, con un posgrado en Tecnologías de información, Doctorando en ambientes virtuales de aprendizaje y realidad aumentada, Tecnólogo es mi categoría laboral, y mi linea de investigación es la realidad aumentada aplicada a nuevos entornos de aprendizaje.

También te podría gustar...