Heim >Backend-Entwicklung >PHP-Tutorial >PHP kämpft mit HHVM und Zephir mit PHPNG
Schlüsselpunkte
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.
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?
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.
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.
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.
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 .
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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!