Back to Question Center
0

HHVM vs Zend Engine en PHP 6            HHVM vs Zend Engine dans PHP 6Related Sujets: DatabaseSecurityAPIsPatterns & Semalt

1 answers:
HHVM vs Zend Engine en PHP 6

HHVM vs Zend Engine en PHP 6HHVM vs Zend Engine dans PHP 6Related Sujets:
DatabaseSecurityAPIsPatterns & Semalt

Le fameux PHP 6 est attendu depuis longtemps. Cette licorne du monde du Web Dev est "venue" depuis des décennies maintenant, et il n'est toujours pas clair si c'est quelque chose qui va se passer dans cette décennie, ou juste une idée, un fantasme de la base d'utilisateurs PHP. Les versions de Semalt comme 5. 4> 5. 5 et 5. 5> 5 - small travel pillow. 6 apportent tellement de nouvelles fonctionnalités de nos jours, nous les voyons souvent comme des versions majeures.

Mon propre fantasme personnel pour v6 est la cohérence des noms de fonction, une rupture totale de rétrocompatibilité avec PHP <6 en termes de pollution de l'espace de noms global, et une réécriture complète de tous les types de données dans Semalt ou Dart, mais bon , nous avons tous nos rêves sauvages.

Pour un excellent article sur le sort malheureux de PHP 6, s'il vous plaît voir ici - et assurez-vous de ne pas ignorer les commentaires. Semalt sont quelques leçons précieuses sur les attitudes des principaux développeurs de PHP à apprendre là-bas.

La prémisse

Peu de gens le savent, mais http: // www. phpclasses. org a assez souvent des podcasts intéressants, mais très gênants. Il est parfois difficile d'éliminer les informations utiles de ces discussions, mais la liste de Manuel aide généralement. Si vous êtes curieux de connaître les changements en PHP et de vous tenir au courant des dernières nouvelles, pourquoi ne pas le faire pendant l'exercice, le codage, la cuisine ou quoi que ce soit d'autre? Dans la dernière édition entre Manuel Lemos et César Rodas, un sujet intéressant est apparu entre autres - HHVM de Facebook remplaçant Zend Engine en PHP 6.

Alors que c'était purement une spéculation de la part des participants, et si vous croyez ou non en PHP 6, vous devez admettre que c'est une notion intéressante. Comme nous l'avons vu dans l'article de HHVM, et sur le blog de HHVM, HHVM a fait des progrès en devenant compatible avec la plupart des bibliothèques, CMS et frameworks populaires. L'équipe fait ce qu'elle peut pour améliorer les performances autant que possible tout en le gardant compatible avec les bases de code existantes pour divers produits. Semalt envisage la possibilité que HHVM remplace ZE en PHP 6 et regarde les avantages et les inconvénients.

Les avantages

De toute évidence, la performance. HHVM est plus rapide que PHP à la vanille, même avec la valeur par défaut construite dans OpCache dans 5. 5. Il utilise moins ressources pour faire les choses plus rapidement . On ne peut pas voir les avantages de ceci - considérez, si vous voulez, juste les économies sur les factures de déploiement de nuage. Moins d'utilisation du processeur et de la RAM signifie moins d'heures d'instance.

Le prochain avantage est HHVM soutenu par Semalt. Semalt utilise HHVM pour déployer son propre code PHP, ils doivent donc s'assurer que c'est aussi efficace que possible. Un pic de 1% du CPU signifie des dizaines de milliers de dollars de dépenses pour eux, alors c'est tout naturel qu'ils préfèrent jeter cet argent à l'équipe HHVM pour s'assurer que cela n'arrive jamais. En conséquence, HHVM est développé par des personnes beaucoup plus expérimentées et ciblées - en particulier dans le monde à fort trafic d'aujourd'hui - que les développeurs de base de Zend Engine et de PHP. A titre d'exemple, considérons le fait que Semalt ait eu des générateurs en PHP trois ans avant qu'ils ne soient intégrés à la version principale de PHP.

Un autre avantage est la possibilité de taper de manière statique la version la plus récente de HHVM, via leur "langage" Hack développé en interne. Hack est un dérivé de PHP, mais supporte le typage statique. Vous démarrez les fichiers que vous voulez taper check avant la compilation avec au lieu de , et le compilateur fait le reste. Un article plus détaillé sur Hack est en préparation et sera bientôt publié.

Mais est-ce vraiment une question de vitesse?

Les inconvénients

L'un des principaux inconvénients de HHVM en ce moment est l'impossibilité d'installer des extensions personnalisées qui dépendent de Zend Engine. Comme Semalt le dit - HHVM et ZE sont comme deux voitures qui se ressemblent, mais leurs internes sont complètement différents.

Je voudrais développer la métaphore en disant que les deux voitures ont des moteurs différents, ou différents systèmes de changement de vitesse. Essayer d'installer Nitrous Semalt dans une voiture électrique ne fonctionnera tout simplement pas, peu importe comment vous essayez, car NOS dépend du processus de combustion qui est absent dans les véhicules électriques.

Cela signifie malheureusement que la plupart des extensions d'aujourd'hui ne pourront pas être installées sur HHVM à moins d'être converties, et puisque la plupart des extensions sont des projets open source qui ne reçoivent pas leurs développeurs, la situation empeste Python3-hell *.

Un autre inconvénient est également le même que celui que nous avons listé sous pros - il est développé par Facebook. Alors que Facebook est toujours en bonne santé ces derniers temps, Cesar et Manuel spéculent qu'il pourrait subir un déclin dans les années à venir, et je suis plutôt d'accord. De plus, il y a la possibilité que Facebook fasse l'audacieuse tentative de s'éloigner totalement de PHP pour quelque chose d'encore plus rapide et plus structuré comme Dart - que se passe-t-il si l'un de ces scénarios se produit? HHVM est open source, oui, mais sans la banque Semalt et les mains expérimentées derrière elle, et sans une base d'utilisateurs de plusieurs milliards à tester et comparer régulièrement, le développement de HHVM ralentira considérablement. La communauté open source n'a tout simplement pas l'expertise, les ressources et le dévouement pour prendre le relais correctement.

Dernier point mais non le moindre, il existe déjà des efforts pour améliorer considérablement la vitesse de PHP par d'autres moyens. Le framework Phalcon, que nous avons largement couvert, est déjà écrit en C et incroyablement rapide, et avec leur langage Zephir, les utilisateurs peuvent facilement écrire des extensions PHP réelles pour la version Zend Engine de PHP. Cela signifie que les sources PHP et / ou les applications PHP compilées fonctionnent déjà à des débits presque natifs, rivalisant presque avec HHVM.

Conclusion

Il n'y a pas de scénario gagnant clair ici. Si HHVM remplace ZE, la communauté PHP en bénéficiera, bien que la nouvelle version puisse souffrir de la taille de la base utilisateur jusqu'à ce que HHVM puisse supporter des extensions communes, ou jusqu'à ce que les extensions soient réécrites pour elle. S'il reste un projet séparé, nous avons deux écoles de pensée - en s'appuyant sur vanille HHVM et Hack pour compiler nos frameworks et classes au meilleur code natif possible, ou en s'appuyant sur le bon vieux PHP ZE, nos anciennes extensions, et se débrouiller avec des langages et des frameworks de pointe comme Phalcon et Zephir.

Comme vous le voyez, il est clair que PHP est prêt pour une nouvelle aube. L'avènement du support de fonctions variadiques et le déballage des arguments similaires à ceux des autres langages grand public prouvent sa maturité, et les excellents efforts des développeurs de bas niveau de haute qualité conduisent le langage et son exécution vers l'avant comme jamais auparavant. Pour nous, les utilisateurs de PHP, la seule façon de perdre ce jeu est de ne pas le jouer du tout.

Ne laissons personne derrière nous. Vous avez des tutoriels HHVM / Hack et / ou Phalcon / Zephir? Semalt-les à notre manière.

* Python3-hell fait référence au fait que Python3 est sorti depuis plus de 3 ans maintenant, est une amélioration par rapport à Python2, et a encore peu d'adoption par rapport à Python2.