PHP 8 possède de nouvelles fonctionnalités pour optimiser les performances et une nouvelle fonctionnalité qui augmente la vitesse des scripts appelée compilation JIT (Just In Time).
Les langages de programmation purement interprétés n'ont aucune étape de compilation et exécutent directement le code sur la machine virtuelle. La plupart des langages interprétés, dont PHP, comportent en fait une étape de compilation légère pour améliorer les performances.
D'un autre côté, les langages de programmation anticipés (AOT) nécessitent que le code soit compilé avant de pouvoir être exécuté.
La compilation Just In Time (JIT) est un modèle hybride d'interpréteur et de compilation anticipée dans lequel tout ou partie du code est compilé, souvent au moment de l'exécution, sans que le développeur ait besoin de le compiler manuellement.
Cette option est contrôlée dans le module opcache. Ce module est conçu pour accélérer le fonctionnement des scripts, et l'activation de JIT accélère encore l'exécution des scripts - c'est-à-dire permet une double accélération.
Graphique d’augmentation de vitesse comparative.
Dans notre exemple, nous utiliserons php 8.3.
1. Vérifiez la disponibilité des modules
php8.3 -m | grep OPcache
Dans la sortie, il peut apparaître 2 fois dans la section générale et dans la section modules Zend. Cela signifie qu'il est activé.
1.1 S'il est éteint, allumez-le
Dans notre exemple, nous utilisons Debian 12 et vos chemins peuvent différer.
nano /etc/php/8.3/fpm/conf.d/10-opcache.ini
; configuration for php opcache module
; priority=10
opcache.enable=1
opcache.revalidate_freq=0
opcache.validate_timestamps=1
opcache.max_accelerated_files=10000
opcache.memory_consumption=192
opcache.max_wasted_percentage=10
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1
zend_extension=opcache.so
opcache.jit=on
1.2 Activer le module dans les paramètres php
nano /etc/php/8.3/fpm/php.ini
Ajoutez à la toute fin de la ligne de configuration :
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.jit_buffer_size=256M
opcache.jit=1235
1.3 Redémarrer fpm
service php8.3-fpm restart
service php8.3-fpm status
1.4 Vérifions à nouveau la présence du module
php8.3 -m | grep OPcache
1.5 Vérifier avec un script
Créons un fichier php avec le contenu suivant
touch info.php
nano info.php
<?php
phpinfo();
?>
Ouvrez le script via le navigateur http[s]://domain.tld/info.php et en utilisant la recherche Ctrl + f du mot opcache, recherchez les paramètres de configuration.
Ces lignes indiquent que le module OPcache et le module complémentaire JIT sont activés.