mejora-php-8-el-compilador-jit

La mejora más importante de PHP 8: el compilador JIT (Just in Time)

Jaime VelaTutoriales Leave a Comment

En este articulo vamos a comentar la mejora más importante, que nos aporta el PHP 8 con respecto a versiones anteriores aunque en el PHP 7.4 hubiera una versión experimental, el compilador JIT (Just in Time).

Como sabemos el PHP es un lenguaje interpretado y cuando se ejecuta es cuando se convierte a código máquina. Esta diferencia hace que el PHP no tenga el mismo rendimiento que los lenguajes compilados (java, c), pero esta mejora ha nacido para mejorar este rendimiento.

¿Qué es el compilador JIT (Just in Time)?

El compilador JIT (Just in Time) nos permite compilar en tiempo de ejecución ciertas partes del código, para su posterior reutilización en futuras peticiones por parte del usuario. ¿Qué ganamos con ello y qué lo hace tan importante? Pues que al evitar nuevas conversiones del código interpretado a código máquina, esto nos hace mejorar el rendimiento de las aplicaciones en algunos casos ¡¡¡hasta 4 veces!!!.

Esto nos abre 2 nueva vías mejoras muy importantes. Una de ellas es mejorar el rendimiento de cualquier proyecto realizando con los diversos Framework de PHP como son, Symfony, Laravel, WordPress, Drupal… etc.  Aunque en un proyecto web no suele repetirse un código muchas veces, ya se aprecia esta mejor. Donde sí vamos a ver y notar esta mejora es cuando se ejecuten procesos de cálculos muy pesados y repetitivos, cálculos de KPI, informes, etc…

El compilador JIT también nos va a permitir y no deja de ser importante, que, al ser multiplataforma, funciona tanto en Linux, Windows o Mac, esto abre el camino a poder realizar aplicaciones PHP fuera del mundo Web como tal, con el que únicamente ha sido vinculado.

¿Cómo funciona?

Como hemos indicado solo compila ciertas partes del código ,¿cómo sabe esta nueva funcionalidad qué código tiene que compilar?

Esto se controla mediante un proceso interno que monitoriza la vigilancia del código durante su ejecución y cuando detecta que se ejecuta varias veces esta parte determinada del código, la marca como candidata a compilar. Al realizar las compilaciones de este código repetitivo, y las guarda en caché (extensión OPcache) y la próxima vez que se requieran estas partes del código no sirve el código interpretado si no que sirven el código ya compilado, mejorando el rendimiento enormemente como hemos comentado anteriormente estas operaciones ya que han sido compiladas anteriormente.

Habilitar JIT en PHP 8

Para habilitar el JIT, lo primero que hay que hacer es modificar el php.ini y habilitar OPcache, porque por defecto no viene habilitado el OPcache.

Para ello, buscaremos en el php.ini y haremos este cambio el primero opcache.enable y le asignaremos el valor 1.

opcache.enable = 1

Luego activaremos el compilador asignando el valor de 64M a la opción  opcache.jit_buffer_size.

opcache.jit_buffer_size=64M

Después, debemos asignar el valor tracing a la opción opcache.jit, que es su valor por defecto, equivalente a utilizar 1255 como valor:

opcache.jit = tracing

Para asegurarnos que el  JIT está correctamente funcionando, podemos ejecutar la siguiente función, que mostrará un array asociativo que debería tener asignado el valor true para la clave enabled:

var_dump(opcache_get_status()[‘jit’]);

Esta nueva mejora será clave para optimizar aún más tu tiempo cuando estés programando en PHP 8. ¿Te has quedado con ganas de más? Desde Aitana podemos resolver tus dudas, ¡rellena el formulario y háznoslas llegar!

jaime-vela-aitana

Jaime Vela
Business Applications

Consulta tus dudas sin compromiso
(o deja un comentario más abajo)

Deja un comentario