PHP 8 : le compilateur JIT et de nouvelles fonctionnalités

26 novembre 2020

La nouvelle version majeure de PHP introduit le compilateur JIT, qui va permettre d’améliorer sensiblement les performances.

Attendu par les développeurs, la sortie de PHP 8 est lancée ce 26 novembre. © andreyakaan147 – stock.adobe.com

Alors que sa version précédente avait déjà permis d’optimiser sa vitesse d’exécution, PHP 8 a pour objectif d’améliorer encore plus les performances. Comme il s’agit d’une nouvelle version majeure, vous aurez certainement besoin d’apporter des modifications à votre code pour profiter pleinement des évolutions apportées par PHP 8, mais aussi pour corriger certaines alertes ou erreurs liées à des fonctions dépréciées. Il faut noter que la plupart des changements de rupture (fonctions modifiées) apportés par PHP 8 avait été déjà rendues obsolètes dans versions 7.2, 7.3 et 7.4. Cette nouvelle version majeure du langage de programmation open source s’accompagne d’une série de nouvelles fonctionnalités, dont le compilateur JIT.

Lancement du compilateur JIT avec PHP 8

La principale nouveauté introduite par PHP 8 est le compilateur JIT (Just in Time). PHP JIT va désormais compiler des parties du code pendant son exécution. Il agira ainsi de la même manière qu’une version en cache du code, ce qui devrait nettement améliorer les performances.

Nous proposons d’inclure un compilateur JIT à PHP 8 et de fournir des efforts supplémentaires pour augmenter ses performances et sa facilité d’utilisation. (…) PHP JIT est implémenté comme une partie d’OPcache. Il peut être activé ou désactivé au moment de la compilation et au moment de l’exécution. Lorsqu’il est activé, le code natif des fichiers PHP est stocké dans une région supplémentaire de la mémoire partagée OPcache et op_array→opcodes[].handler(s) conserve des pointeurs vers les points d’entrée du code généré par le compilateur JIT. Cette approche ne nécessite aucune modification du moteur. (…) PHP JIT n’introduit pas de représentation intermédiaire. Il génère du code natif directement à partir du bytecode PHP et des informations collectées par le framework d’analyses statiques SSA. Le code est généré de façon séparée pour chaque instruction PHP, précisent Dmitry Stogov et Zeev Suraski dans leur proposition de RFC.

Avec le compilateur JIT, PHP 8 passe la vitesse supérieure. Une amélioration sensible au niveau du gain de performances a été observée lors de tests, avec un résultat jusqu’à quatre fois plus rapide, et une meilleure utilisation de la mémoire, notamment pour les tâches qui nécessitent un grand nombre de ressources CPU. Seul bémol : le compilateur JIT ne devrait pas avoir d’effet spectaculaire sur les performances de WordPress, dont la version 5.6 prévue pour le 8 décembre supportera PHP 8, ou des applications web similaires. En augmentant son niveau de complexité, cette nouvelle version pourrait aussi augmenter le risque de nouveaux types de bugs et le coût lié à leur maintenance.

Les nouvelles fonctionnalités de PHP 8

En plus du compilateur JIT, PHP 8 apporte une série de nouvelles fonctionnalités, qui permettront de le rendre plus efficace. Parmi ces nouveautés, on peut ainsi noter :

  • Les types d’union 2.0 : pour définir des types à choix multiples pour la propriété d’une classe,
  • Les attributs v2 : pour ajouter des métadonnées afin de spécifier les propriétés des objets, des éléments ou des fichiers,
  • Les WeakMaps : pour économiser des ressources lors de la manipulation des objets,
  • La virgule de fin dans la liste des paramètres, incluant les fonctions, les méthodes et les fermetures,
  • L’expression throw : pour convertir cette déclaration en une expression qui puisse être utilisée dans un contexte où elles sont autorisées,
  • La syntaxe de classe étendue aux objets : pour pouvoir récupérer le nom de la classe d’un objet donné.
Si vous souhaitez profiter des nouveautés apportées par PHP 8, vous pouvez essayer cette nouvelle version majeure avant de l’adopter définitivement. Dans tous les cas, il est recommandé de conserver une version PHP à jour, même s’il s’agit d’une version antérieure.

Recevez par email toute l’actualité du digital



Source link

agence de communication à Rennes

PHP 8 : le compilateur JIT et de nouvelles fonctionnalités
Mot clé :                
Agence LDP