Das könnte dich auch interessieren

Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

Entwicklung

Webentwicklung: „HipHop“ – Facebook erfindet PHP neu

Wie wir bereits am Montag spekuliert haben, hat Facebook nun tatsächlich in seinem Developer Blog eine Erweiterung zu PHP veröffentlicht: „HipHop“ ist ein Compiler, der vor allem den Einsatz von PHP im Enterprise-Bereich und auf Hochlast-Seiten revolutionieren könnte.

Facebook benutzt PHP, da es nach eigener Aussage eine Programmiersprache ist, die eine geringe Lernkurve besitzt, dabei aber trotzdem alle Möglichkeiten offen lässt. Allerdings liefert Facebook im Monat zirka 400 Milliarden PHP-Seiten aus, womit man definitiv an die Grenzen von PHP stößt. Denn aufgrund dessen Architektur liegen keine kompilierten Programme vor, sondern bei jedem Aufruf wird ein PHP-Skript erneut in einen Bytecode übersetzt. Software-Lösungen wie zum Beispiel der Zend Server, der eAccelerator oder APC versuchen, diesem Umstand mit Caching entgegenzuwirken. Die aber sind vom Prinzip her Behelfslösungen, die die Ausführungsgeschwindigkeit zwar beschleunigen, aber immer noch nicht die Geschwindigkeit kompilierter Programme erreichen, die direkt aufgerufen werden können. Diesem Umstand trägt Facebook nun mit seinem PHP-Compiler Tribut.

Zwei Jahre Entwicklungszeit

„HipHop“ vermag es, beliebigen PHP-Code nach C++ zu transferieren und den dabei entstehenden Code mit g++ zu kompilieren. Als Ergebnis erhält man ein ausführbares Programm, das direkt vom Webserver aufgerufen werden kann. Neben der Tatsache, dass dieses Programm per se schneller Berechnungen durchführt als PHP selbst, entfällt auch der gesamte Aufwand einen Cache bereitzustellen oder das permanente Kompilieren in Bytecode.

Die Entwicklungszeit von HipHop betrug nach eigenen Angaben zwei Jahre und beträgt 300.000 Zeilen Quelltext verbunden mit 5.000 Unit Tests. Die Veröffentlichung erfolgt in Kürze auf Github. Im Kleingedruckten kündigt Facebook außer HipHop auch  HPHPi an, das sich allerdings noch im Entwicklungsstadium befindet. HPHPi scheint ein Interpreter-Ersatz für PHP zu sein, das die Vorzüge von HipHop bereitstellt, ohne das man die Art und Weise der PHP-Entwicklung ändern müsste.

Fazit

Die Vorteile von HipHop liegen klar auf der Hand und man darf nun gespannt sein, wie die PHP-Community reagiert - oder auch Zend, deren Brot-und-Butter-Geschäft ja der Zend Server und somit die Optimierung von PHP ist. Wird HipHop eine breite Akzeptanz finden, gut einsetzbar sein, und vor allem als Open Source zur Verfügung stehen, muss Zend sicherlich kurzfristig reagieren.

Finde einen Job, den du liebst zum Thema PHP, Social Media

Alle Jobs zum Thema PHP, Social Media
8 Reaktionen
Frank Karlson
Frank Karlson

In anderen Berichten habe ich gelesen, das FB HipHop nicht in allen Anwendungen im einsatzt hat, bedeutet für mich die Frage woher kommen die 50% CPU Reduzirung?
Meinen die Etwa bei "Hello World" ?
Auch die Beispiele in einem Video wo übelst lastige Schleifen als Beispiel genommen werden sind eher die Ausnahme und kommen bei einem normalen Projekt so nicht zustande.

Ein wirklicher Meilenstein bleibt meiner Meinung nach aus. Es ist nur etwas anders und wenn man bedenkt auf was bei der Programmierung verzichtet werden muss, ist es kein wirklicher gewinn.

Antworten
Thomas Fritz
Thomas Fritz

Eigentlich auch nix ganz neues. Obwohl ich vorher auch von anderen Projekten wie Roadsend nix gehört hab.

Was mich interessiert ist wie sich solche Entwicklungen für kommende Frameworks wie FLOW3 auswirken. So ist es bei Roadsend zum Beispiel möglich, bestimmte PHP Files als PHP Module zu kompilieren: http://www.roadsend.com/p/manual/viewManual.php?prIDX=2&doc=Working-With-Libraries.html#Working-With-Libraries
So kann ich mir durchausvorstellen das man komplette Librarys wie FLOW3 als binary kompilieren lässt und diese als PHP Modul lädt. Wäre eine nette Entwicklung.

Oder aber man kompiliert seine Applikation als eine einzige fcgi Kompatible Binary. Hab Roadsend noch nicht ausprobiert, ich kann mir aber durchaus vorstellen das sich das auch hier absolut positiv auf die Performance auswirkt. Jemand schon Erfahrung gemacht mit Roadsend??

Ich frage mich nur wie und ob sich solche Entwicklungen positiv auf die PHP Sprache an sich auswirken, zumal ja Zend doch mehr oder weniger hinter PHP steht. Gräbt man nun deren Geschäft ab, entsteht die Frage wie sich das auf die Entwicklung von PHP und die Zend Engine auswirken wird.
Vielleicht aber auch positiv, wenn man nicht mehr abhängig zur Zend Engine ist oder aber einfach den PHP Interpreter austauschen kann. Wird interessant....

Antworten
Johnny M.
Johnny M.

Frage mich welchen Einfluß diese angedeuteten einschneidenden Entwicklungen für bestehende und kommende PHP-Frameworks wie Zend Framework, Symfony oder auch FLOW3 hat!? Anyone?

Antworten
gmuehl
gmuehl

Die Geschwindigkeit ist abhängig von den Kosten eines Befehls. String-Operationen sind zum Beispiel immer teuer, Rechen-Operationen billig. Habe ich optimiertes PHP oder nicht? (HipHop optimiert auch!), entsprechend ist auch das Resultat von HipHop unterschiedlich. Man kann da wahrscheinlich nur von einem von-bis-Geschwindigkeitsgewinn reden, und bei manchen Anwendungen wird 50% zu viel sein, bei anderen zu wenig!

Antworten
Pierre
Pierre

50% wären ja schon gut, wobei es nicht die 1000% sind von der t3n noch kürzlich gesprochen hat.

Antworten
Jonas
Jonas

Ich habe gelesen, dass es bis zu 50% schneller ist, aber das ist wahrscheinlich extrem abhängig davon was man macht.

Oft ist ja auch die DB der Flaschenhals, also es wird nur etwas bei aufwändigen PHP abläufen bringen...

Ich bin gespannt wann typo3.exe oder /usr/bin/typo3 da ist :-D... Komplett kompiliert...

Antworten
Dustin Klein
Dustin Klein

Das würde mich auch interessieren. Könnte ein harter Schlag für Zend und Co. werden...

Antworten
Steffen
Steffen

Um wieviel schneller ist das denn?

Antworten

Melde dich mit deinem t3n-Account an oder fülle die unteren Felder aus.

Abbrechen