Heim >Backend-Entwicklung >PHP-Tutorial >PHP kämpft mit HHVM und Zephir mit PHPNG

PHP kämpft mit HHVM und Zephir mit PHPNG

William Shakespeare
William ShakespeareOriginal
2025-02-21 11:44:10810Durchsuche

PHP Fights HHVM and Zephir with PHPNG

Schlüsselpunkte

  • PHPNG, ein neuer Zweig von PHP, befindet sich in der Entwicklung und zielt darauf ab, PHP signifikant zu optimieren und weitere Leistungsverbesserungen bei der zukünftigen Verwendung von JIT -Compilern zu ermöglichen. Es ist kein JIT -Compiler selbst, sondern ein Upgrade, das den Grundstein für den Aufbau eines hervorragenden JIT -Compilers in Zukunft bildet.
  • Das
  • ng -Upgrade konzentriert sich darauf, die Kernteile der Zend -Engine für eine bessere Speicherzuweisung auf PHP -Datentypen neu zu schreiben. Es wird erwartet, dass dies die Leistung verbessert und eine sauberere API ermöglicht.
  • Während PHPNG die Kompatibilität mit vorhandenen Erweiterungen verspricht, werden nicht alle Erweiterungen unterstützt und einige Tests fehlgeschlagen. Diese Kompatibilitätsprobleme können gemeinsamen Hosting -Anbietern beim Upgrade Herausforderungen stellen.
  • Die langsame Anpassung des PHP -Kernentwicklungsteams an die Änderung kann bedeuten, dass die PHPNG -Implementierung möglicherweise nur Leistungsverbesserungen bietet und nicht mit Hack und HHVM konkurrieren kann, was bereits zusätzliche Funktionen bietet.

Dieser Artikel wird von Newrelic gesponsert. Vielen Dank für Ihre Unterstützung für die Sponsoren, die SitePoint ermöglicht haben! Frühere Versionen des Artikels haben Phpng fälschlicherweise als JIT -Compiler beschrieben. Dies ist nicht der Fall, und die erforderlichen Änderungen wurden abgeschlossen. Weitere Informationen finden Sie im unteren Bereich des Artikels.


Chaos in der alten Welt! Vor ein paar Jahren, vor allem HipHop, achtete niemand darauf. Dann erscheint plötzlich HHVM, Hack wird vorgestellt und alles ist in einem Chaos - Facebook hat einen neuen PHP erstellt und alles gebrochen/behoben (je nachdem, wen Sie fragen). Darüber hinaus entsteht Zephir und droht, alle PHP-Code auf C-Ebene zu kompilieren und die aktuellen PHP-Erweiterungen vollständig zu unterstützen (obwohl Zephir nicht C oder PHP ersetzen soll, ermöglicht es Ihnen, PHP-ähnlichen Code zu schreiben und ihn in C zu kompilieren, diese Ermöglicht Ihnen, alle Ihre PHP -Anwendungen problemlos in ein Format umzuschreiben, das für eine geschlossene Quelle für schnellere und mehr Sicherheit kompiliert werden kann. Für alternative PHP -Laufzeiten ist dies die Zeit für Pilze zum Wachstum, und auch Hippyvm erscheint.

In dieser Reihe von Veränderungen ist eine weitere neue Stimme entstanden: Phpng.

Wie Manuel Lemos einführt, ist PHPNG ein neuer Zweig von PHP, der in einer zukünftigen Version von PHP erscheinen wird, die noch nicht bestimmt wurde.

Warte, was?

Der Name ist ein bisschen kitschig (NG = New Generation), und die ungeschickte Version von PHP ist ein Versuch des Kernteams, PHP signifikant zu optimieren und zukünftige Leistungsverbesserungen mit dem JIT -Compiler zu ermöglichen. PHPNG selbst ist kein JIT -Compiler, sondern ein Upgrade, das den Grundstein für den Aufbau eines hervorragenden JIT -Compilers in der Zukunft bildet. Der Phpng -Zweig selbst enthält keine JIT -Funktionen.

phpng wurde von Dmitry Stogov in einem internen Newsgroup -Thema vorgestellt. Dmitry ist für die Leistung und Optimierung von Zend verantwortlich, die sich hauptsächlich mit dem Zend -Motor befasst. NG -Upgrades konzentrieren sich darauf, die Kernteile der Zend -Engine umzuschreiben, um eine bessere Speicherzuweisung auf PHP -Datentypen zuzuweisen.

Auszug aus Reddit:

ng existiert, weil die Experimente, die Zend durchgeführt wurden, als JIT in der realen Welt vorgestellt wurde, aufgrund des aktuellen Designs des Motors, vor allem, weil wir ständig alles zuweisen. NG -Patches haben die Spezifikation geändert, sodass wir standardmäßig keine Zvals mehr zuordnen, was die Leistung verbessert und eine sauberere API ermöglicht.

Wie bei jedem Versuch, PHP zu verbessern, hat dieser Versuch seine Vor- und Nachteile.

pros

Geschwindigkeit!

Eine schnellere Ausführung bedeutet eine schnellere Ressourcenzuweisung, eine schnellere Anfrageverarbeitung und einen größeren Anforderungsdurchsatz. Die vorläufigen Ergebnisse sind ermutigend (1, 2).

Leistung muss noch gegen andere Alternativen bewertet werden, aber die Verbesserung von 10 bis 30% kann nicht unterschätzt werden.

Erweitern!

Da dieses Upgrade mit dem offiziellen Zend -Engine und nicht zur Laufzeit durchgeführt wird, garantiert es fast die Kompatibilität mit der aktuellen Erweiterung. Einer der Hauptgründe, warum Menschen zögern, zu HHVM zu wandern, ist, dass die grundlegenden Erweiterungen, die sie verwendet, nicht verfügbar sind (in meinem Fall Phalcon). Persönlich macht mich eine schnellere PHP -Engine, die Phalcon unterstützt, weniger besorgt über die Upgrades Hack -Angebote heute.

So garantiert es eine verlängerte Kompatibilität… und so weiter. Ja? Oh nein.

Nachteile

Erweitern!

unglaublich gut.

Nicht alle Erweiterungen werden unterstützt, einige Tests scheitern und wir haben mehr Ideen zur Verbesserung.

Um fair zu sein, ist Ng immer noch sehr jung. Viel jünger als alles, was wir uns in der PHP -Welt befasst haben, und eher ein großes Update - daher sind einige Kompatibilitätsprobleme unvermeidlich. Aber ich stimme Manuel zu, dass dies für die meisten gemeinsamen Hosting -Anbieter ein Schmerzpunkt sein kann, wenn die Upgrade -Zeit kommt.

Obwohl ich ziemlich gegen gemeinsame Hosting -Anbieter bin, verstehe ich die Probleme, die dies möglicherweise mit sich bringt, voll und ganz. Wir hatten beide ähnliche Verwirrung, als wir versuchten, Anbieter dazu zu bringen, „PHP5“ zu verwenden, und die letzte Zeit, in der sie eine neuere Version von PHP verwenden mussten, wäre es eine entmutigende Aufgabe, eine große Verschiebung vorzunehmen, die BC -Störungen einführen könnten.

Diese Angst vor Veränderungen wird die Verwendung älterer Versionen von PHP festigen, was wiederum extrem uneingeschränkte PHP -Entwickler hervorruft, die an veralteten Code arbeiten und die Best Practices und Schwachstellen vollständig ignorieren. Kurz gesagt, wir werden die Geschichte wiederholen. Es mag wie das Ende der Welt klingen, wie einige hervorgehoben haben, aber ich bin tief in alle Bereiche von PHP involviert und erreicht die Bereiche niedrigster Qualität mit einem vollständigen Posteingang. Ich sehe, was wir jetzt befinden wohin wir gehen werden. Nicht alles ist jedoch dunkel - Lösungen wie Heroku und Digitalocean werden es den Menschen ermöglichen, die neuesten und maßgeschneiderten Versionen von PHP zu einem Preis zu betreiben, der weniger als (oder gleich) gemeinsam genutzte Hosting -Anbieter.

Meine aufrichtigste Hoffnung ist, dass das Kernteam in der Lage sein wird, die neuer Zend -Engine auf ein Niveau zu vervollständigen, das mit allen Erweiterungen rückwärtsvergleichbar ist, aber alle Erweiterungsentwickler, die die NG -Spezifikationen und Best Practices nicht einhalten .

Innen langsam

Das Kernentwicklungsteam ist bekannt dafür, sich an langsame Veränderungen anzupassen. Moderne Merkmale, die viele Jahre in anderen Sprachen existierten, wurden in der Vergangenheit abgelehnt und erst einige Jahre später umgesetzt.

ob dies auf einen Mangel an Vision für das Kernentwicklungsteam zurückzuführen ist, wie Anthony und Phils Post sagen, oder weil es zu klein und unterfinanziert ist, um schnell wesentliche Änderungen vorzunehmen, spielt es keine Rolle - langsam bedeutet, dass wir innen bedeutet, dass wir können Nie in der Lage sein, NG in der Öffentlichkeit zu sehen und den „Alpha“ -Staat loszuwerden, wie es beim mysteriösen Php6 der Fall ist.

Dies erinnert uns an den letzten Punkt.

wieder hinter sich lagen

Aufgrund der inhärenten Langsamkeit, die häufig in PHP -Kernentwicklungsteams zu sehen ist, liefert es nur Leistungsverbesserungen, wenn NG implementiert wird (falls tatsächlich implementiert ist). Bis dahin bieten Hack und HHVM (viel mehr als Standard -PHP) so viele zusätzliche Funktionen, dass die Übereinstimmungen manipuliert werden und PHP keine Gewinnchance hat.

Die heute in Hack und Zephir verfügbaren Typaufforderungen erfassen in diesen Implementierungen Wurzeln. Multithread, kompiliert und eigenständiger Webserver - Alle diese Funktionen sind heute in alternativen Lösungen erhältlich und sind fast alle bereit, in die Produktion zu gehen. Während das Kernentwicklungsteam an einigen dieser Funktionen arbeitet und PHP möglicherweise vor HHVM (was für manche offensichtlich wichtig ist) durch IIS unterstützt wird, denke ich persönlich immer noch, dass dies nicht schnell genug für die offizielle Seite des PHP -Fortschritts ist.

Auch wenn sich das Kernteam für all diese Besonderheiten, die Probleme und Bedürfnisse haben, entscheidet, für "Ja" zu stimmen, dauert es zu lange, um die Implementierung zu erhalten - und sie werden standardmäßig zurückliegen, es sei denn, der Paradigmenverschieb Ihre Gesamtheit ändert sich, wie man funktioniert. Das Verschieben des Quellcodes in GitHub ist eine gute Bewegung, aber er berührt nur die Oberfläche.

Mit anderen Worten, Rasmus selbst soll glauben, dass HHVM in wenigen Jahren zum Kernmotor von PHP geworden ist, ist kein Science -Fiction -Szenario.

Schlussfolgerung

Das Eigentum im Zusammenhang mit Facebook (das an sich viele negative Auswirkungen hat), drückt HHVM die Entwickler in die richtige Richtung, indem er zeigt, wie solche Upgrades vorgenommen werden können. Dies treibt Innovation vor und zwingt diejenigen, die seit langem mit ihrem Thron zufrieden waren, aufzustehen und ihre Beine zu strecken, um zu sehen, ob sie noch laufen können. Die Aggressivität von Facebook zwang die PHP -Welt, wieder zu überdenken und darüber nachzudenken, was los ist, und es wurde bald populär.

Der Wettbewerb ist großartig. Ich fühle mich optimistisch darüber, wo immer uns das bringt.

28. Mai 2014 Artikel -Update

Nach einer E -Mail mit Phil Sturgeon und nach dem Lesen der offiziellen Erklärung habe ich einige der oben genannten Texte bearbeitet. Kurz gesagt, ich klassifiziere PHPNG als JIT, was offensichtlich nicht ist, sondern nur ein Leistungs -Upgrade, mit dem das Kernteam später einen geeigneten JIT -Compiler entwickeln kann.

häufig gestellte Fragen zu PHP, HHVM, Zephir und PHPNG

Was ist der Hauptunterschied zwischen PHP und Zephir?

PHP und Zephir sind beide Skriptsprachen für die Webentwicklung. PHP ist eine weit verbreitete Open-Source-Sprache, während Zephir eine hochrangige Sprache ist, mit der Entwickler Erweiterungen für PHP schreiben können. Zephir liefert eine statische typisierte Syntax, die dazu beiträgt, mögliche Fehler in PHP zu verhindern. PHP verfügt jedoch über eine größere Gemeinschaft und mehr verfügbare Ressourcen, die für Entwickler von Vorteil sein können.

Wie kann ich HHVM mit PHPNG vergleiche?

HHVM (Virtual Machine HipHop) und PHPNG (PHP -neue Generation) sind beide Motoren für die Ausführung von PHP -Code. HHVM wird von Facebook entwickelt und verwendet eine Instant -Kompilierungsmethode, um eine hervorragende Leistung zu erzielen. Andererseits ist PHPNG ein internes Projekt von PHP, das darauf abzielt, die Leistung von PHP -Anwendungen zu verbessern. Dies geschieht, indem sie die Art und Weise ändern, wie PHP Werte und Objekte intern repräsentiert, was zu erheblichen Verbesserungen des Speicherverbrauchs führt.

Ist Zephir noch in der Wartung?

Zephir wird nach jüngsten Aktualisierungen nicht mehr aktiv aufrechterhalten. Dies bedeutet, dass die Sprache zwar noch verfügbar ist, aber möglicherweise keine Aktualisierungen oder Korrekturen für potenzielle Probleme erhalten, die möglicherweise auftreten.

Was sind die Vorteile der Verwendung von Zephir?

Zephir bietet Entwicklern viele Vorteile. Es liefert eine statische typisierte Syntax, mit der Fehler verhindert werden können. Es ermöglicht Entwicklern auch, Erweiterungen für PHP zu schreiben, um die Leistung von PHP -Anwendungen zu verbessern.

Warum Zephir schaffen?

Der Zweck der Erstellung von Zephir besteht darin, eine hochrangige Sprache bereitzustellen, mit der Entwickler Erweiterungen für PHP schreiben können. Ziel ist es, die Leistung von PHP -Anwendungen zu verbessern, indem Entwicklern kritische Code -Teile in Sprachen schreiben können, die einfacher zu optimieren und verwalten sind.

Wie verbessert PHPNG die Leistung von PHP -Anwendungen?

PHPNG verbessert die Leistung von PHP -Anwendungen, indem die Art und Weise geändert wird, wie PHP Werte und Objekte in internem darstellt. Dies führt zu erheblichen Verbesserungen des Speicherverbrauchs und kann zu einer schnelleren Ausführungszeit für PHP -Anwendungen führen.

Was ist die Zukunft von PHP mit dem Aufkommen von HHVM und Zephir?

Trotz der Entstehung von HHVM und Zephir ist PHP immer noch eine weit verbreitete Web -Entwicklungssprache. Während HHVM und Zephir Leistungsverbesserungen bieten, verfügt PHP hat eine riesige Community und reichlich vorhandene Ressourcen. Die Zukunft von PHP sieht vielversprechend aus und arbeitet ständig daran, ihre Leistung und Fähigkeiten zu verbessern.

Kann ich Zephir verwenden, um PHP -Erweiterungen zu schreiben?

Ja, einer der Hauptvorteile von Zephir besteht darin, dass Entwickler Erweiterungen für PHP schreiben können. Dies kann eine Möglichkeit sein, die Leistung Ihrer PHP -Anwendung zu verbessern.

Was ist der Unterschied zwischen Skriptsprache und Sprache auf hoher Ebene?

Scripting -Sprache ist eine Programmiersprache, die zur Automatisierung von Aufgaben verwendet wurde, die von menschlichen Bedienern Schritt für Schritt von Schritt für Schritt ausgeführt worden wären. Auf der anderen Seite ist eine Sprache auf hoher Ebene eine Programmiersprache, die eine starke Abstraktion mit Computerdetails hat, wodurch das Lesen und Schreiben einfacher ist.

Wie verbessert die Instant (JIT) -Kompilationsmethode von HHVM die Leistung?

Die Instant (JIT) -Kompilierungsmethode von HHVM verbessert die Leistung, indem Bytecode vor der Ausführung in den Maschinencode kompiliert wird. Dies ermöglicht eine Optimierung und kann die Ausführungsgeschwindigkeit von PHP -Anwendungen erheblich erhöhen.

Das obige ist der detaillierte Inhalt vonPHP kämpft mit HHVM und Zephir mit PHPNG. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn