Points clés
Cet article est parrainé par NewRelic. Merci pour votre soutien aux sponsors qui ont rendu le point de point possible! Les versions précédentes de l'article décrivent à tort PHPNG comme un compilateur JIT. Ce n'est pas le cas et les modifications nécessaires ont été achevées. Veuillez consulter le bas de l'article pour plus d'informations.
Dans cette série de changements, une autre nouvelle voix est apparue: PHPNG.
Comme l'introduit Manuel Lemos, PHPNG est une nouvelle branche de PHP qui apparaîtra dans une future version de PHP qui n'a pas encore été déterminée.
attendez, quoi?
PHPNG a été présenté par Dmitry Stogov dans un sujet de groupe de presse interne. Dmitry est responsable des performances et de l'optimisation de Zend, traitant principalement du moteur Zend. Les mises à niveau NG se concentrent sur la réécriture des parties centrales du moteur Zend pour une meilleure allocation de mémoire aux types de données PHP.
Extrait de Reddit:
ng existe parce que les expériences que Zend a effectuées lorsqu'elle a introduit le JIT a échoué dans le monde réel en raison de la conception actuelle du moteur, principalement parce que nous allouons tout tout le temps. Les correctifs NG ont changé la spécification, nous n'allouons donc plus ZVALS par défaut, ce qui améliore les performances et permet une API plus propre.
Comme pour toute tentative d'améliorer le PHP ", cette tentative a ses avantages et ses inconvénients.
L'exécution plus rapide signifie une allocation de ressources plus rapide, un traitement de demande plus rapide et un débit de demande plus élevé. Les résultats préliminaires sont encourageants (1, 2).
La performance doit encore être comparée à d'autres alternatives, mais l'amélioration de 10 à 30% ne peut pas être sous-estimée.
Étant donné que cette mise à niveau est effectuée sur le moteur Zend officiel, et non sur l'exécution, il garantit presque la compatibilité avec l'extension actuelle. L'une des principales raisons pour lesquelles les gens hésitent à migrer vers HHVM est que les extensions de base qu'ils sont utilisées pour utiliser ne sont pas disponibles (dans mon cas Phalcon). Personnellement, un moteur PHP plus rapide qui prend en charge Phalcon me rendra moins préoccupé par les mises à niveau que le hack offre aujourd'hui.
donc il garantit une compatibilité prolongée… et ainsi de suite. Ouais? Oh non.
incroyablement bon.
Toutes les extensions ne sont pas prises en charge, certains tests échouent et nous avons plus d'idées d'amélioration.
Pour être juste, Ng est encore très jeune. Beaucoup plus jeune que tout ce que nous avons traité dans le monde PHP et plus comme une mise à jour majeure - donc certains problèmes de compatibilité sont inévitables. Mais je suis d'accord avec Manuel que lorsque le temps de mise à niveau arrive, cela peut être un point de douleur pour la plupart des fournisseurs d'hébergement partagés.
Bien que je sois tout à fait contre les fournisseurs d'hébergement partagés, je comprends parfaitement les problèmes que cela peut apporter. Nous avions tous les deux une confusion similaire lorsque nous avons essayé d'amener les fournisseurs à «utiliser PHP5» et à la dernière fois où ils avaient besoin pour utiliser une version plus récente de PHP, donc les amener à faire un grand changement qui pourrait introduire les perturbations de la Colombie-Britannique serait une tâche intimidante.
Cette peur du changement consolidera l'utilisation des versions plus anciennes de PHP, qui à son tour se reproduira des développeurs de PHP plus extrêmement non qualifiés travaillant sur du code obsolète, ignorant complètement les meilleures pratiques et les vulnérabilités. Bref, nous répéterons l'histoire. Cela peut ressembler à la fin du monde, comme certains l'ont souligné, mais je suis profondément impliqué dans tous les domaines de PHP tous les jours et atteignant les zones de qualité la plus basse avec une boîte de réception complète, je vois ce que nous sommes maintenant employés et où nous irons. Cependant, tout n'est pas sombre - des solutions comme Heroku et DigitalOcean permettra aux gens d'exécuter les versions les plus récentes et personnalisées de PHP à un prix inférieur à (ou égal à) des fournisseurs d'hébergement partagés.
Mon espoir le plus sincère est que l'équipe principale sera en mesure de perfectionner le nouveau moteur Zend à un niveau qui reste en arrière compatible avec toutes les extensions, mais émettra des avertissements de compilation à tous les développeurs d'extension qui ne respectent pas les spécifications NG et les meilleures pratiques et les meilleures pratiques .
L'équipe de développement de base est connue pour s'adapter à des changements lents. Les fonctionnalités modernes qui existaient dans d'autres langues pendant de nombreuses années ont été rejetées dans le passé et n'ont été mises en œuvre que quelques années plus tard.
si cela est dû à un manque de vision pour l'équipe de développement de base, comme le dit Anthony et Phil, ou parce qu'il est trop petit et sous-financé pour apporter rapidement des changements majeurs, cela n'a pas d'import Ne pourrez jamais voir NG en public et se débarrasser de l'état «alpha», comme c'est le cas avec le mystérieux PHP6.
Cela nous rappelle le dernier point.
En raison de la lenteur inhérente souvent observée dans les équipes de développement de PHP Core, elle ne fournira des mises à niveau des performances que lorsque NG est implémenté (s'il est réellement implémenté). D'ici là, Hack et HHVM (bien plus que PHP standard) offrira de nombreuses fonctionnalités supplémentaires que les matchs seront manipulés et PHP n'aura aucune chance de gagner.
Les invites de type disponibles aujourd'hui dans Hack et Zephir prendront racine dans ces implémentations. Serveur Web multithread, compilé et autonome - toutes ces fonctionnalités sont disponibles dans des solutions alternatives aujourd'hui, et ils sont presque tous prêts à être en production. Bien que l'équipe de développement de base travaille sur certaines de ces fonctionnalités, et PHP peut avoir un support IIS avant HHVM (ce qui est évidemment important pour certains), je pense personnellement que ce n'est pas assez rapide pour le côté officiel de la progression du PHP.
Même si l'équipe principale décide de voter pour "oui" sur toutes ces fonctionnalités spéciales qui ont des problèmes et des besoins, il leur faudra trop de temps pour mettre en œuvre - et ils seront en retard à moins que le changement de paradigme ne soit introduit et Leur intégralité a changé comment travailler. Déplacer le code source vers GitHub est un bon mouvement, mais il touche simplement la surface.
En d'autres termes, Rasmus lui-même pense que HHVM est devenu le moteur principal de PHP dans quelques années n'est pas un scénario de science-fiction.
Laissant la propriété liée à Facebook (qui a de nombreuses implications négatives en soi), HHVM pousse les développeurs dans la bonne direction en montrant comment de telles mises à niveau peuvent être apportées. Cela stimule l'innovation et force ceux qui se contentent depuis longtemps de leur trône pour se lever et étirer leurs jambes pour voir si elles peuvent encore courir. L'agressivité de Facebook a forcé le monde PHP à revisiter et à réfléchir à ce qui se passe, et il est rapidement devenu populaire.
La compétition est géniale. Je me sens optimiste partout où cela nous amène.
Après avoir eu un e-mail avec Phil Sturgeon et après avoir lu la déclaration officielle, j'ai édité une partie du texte ci-dessus. En bref, je classe PHPNG comme JIT, ce qui n'est évidemment pas, mais juste une mise à niveau des performances, ce qui permettra à l'équipe principale de développer un compilateur JIT approprié plus tard.
PHP et Zephir sont tous deux des langages de script pour le développement Web. PHP est une langue open source largement utilisée, tandis que Zephir est une langue de haut niveau qui permet aux développeurs d'écrire des extensions pour PHP. Zephir fournit une syntaxe typique statique, qui aide à prévenir les erreurs possibles en PHP. Cependant, PHP possède une communauté plus large et plus de ressources disponibles, ce qui peut être bénéfique pour les développeurs.
HHVM (HIPHOP Virtual Machine) et PHPNG (PHP New Generation) sont tous deux des moteurs pour exécuter du code PHP. HHVM est développé par Facebook et utilise une méthode de compilation instantanée (JIT) pour obtenir d'excellentes performances. D'un autre côté, PHPNG est un projet interne de PHP qui vise à améliorer les performances des applications PHP. Il le fait en modifiant la façon dont PHP représente les valeurs et les objets en interne, entraînant des améliorations d'utilisation de la mémoire significatives.
Zephir n'est plus activement maintenu selon les mises à jour récentes. Cela signifie que même si la langue est toujours disponible, elle peut ne pas recevoir de mises à jour ou de correction pour tout problème potentiel qui peut survenir.
Zephir offre aux développeurs de nombreux avantages. Il fournit une syntaxe typtée statique, qui aide à prévenir les erreurs. Il permet également aux développeurs d'écrire des extensions pour PHP, fournissant ainsi un moyen d'améliorer les performances des applications PHP.
Le but de la création de Zephir est de fournir un langage de haut niveau qui permet aux développeurs d'écrire des extensions pour PHP. L'objectif est d'améliorer les performances des applications PHP en permettant aux développeurs d'écrire des pièces de code critiques dans des langues qui sont plus faciles à optimiser et à gérer.
PHPNG améliore les performances des applications PHP en modifiant la façon dont PHP représente les valeurs et les objets en interne. Cela conduit à des améliorations significatives d'utilisation de la mémoire et peut conduire à un temps d'exécution plus rapide pour les applications PHP.
Malgré l'émergence de HHVM et Zephir, PHP est toujours un langage de développement Web largement utilisé. Alors que HHVM et Zephir fournissent des améliorations des performances, PHP a une énorme communauté et des ressources abondantes disponibles. L'avenir de PHP semble prometteur et travaille constamment à améliorer ses performances et ses capacités.
Oui, l'un des principaux avantages de Zephir est qu'il permet aux développeurs d'écrire des extensions pour PHP. Cela peut être un moyen d'améliorer les performances de votre application PHP.
Le langage de script est un langage de programmation utilisé pour automatiser des tâches qui auraient été effectuées étape par étape par étape par étape par les opérateurs humains. D'un autre côté, un langage de haut niveau est un langage de programmation qui a une forte abstraction avec les détails de l'ordinateur, ce qui facilite la lecture et l'écriture.
La méthode de compilation instantanée (JIT) de HHVM améliore les performances en compilant des bytecodes en code machine avant l'exécution. Cela permet l'optimisation et peut augmenter considérablement la vitesse d'exécution des applications PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!