HipHop für PHP
Entwickelt von | |
---|---|
Letzte Version | 3,15,0 (28. September 2016) |
Anzahlung | github.com/facebook/hiphop-php |
Geschrieben in | C ++ und C. |
Umgebung | Plattformübergreifend |
Art | Compiler |
Lizenz | PHP-Lizenz |
Webseite | http://github.com/facebook/hiphop-php |
HipHop für PHP ist eine Sammlung von Software, die von Facebook entwickelt wurde , um die Entwicklung, das Debuggen und die Ausführung von PHP- Code zu optimieren.
Es bezieht sich auf zwei Generationen von Produkten:
Der kompilierte Code der ersten Generation, der in C ++ umgewandelt wurde :
Die zweite Generation ist eine virtuelle Maschine namens HHVM und kompiliert wie JVM für Java und CLR für die .NET-Plattform Code in einer Zwischensprache, die auch als Bytecode bezeichnet wird . Dieser Code wird dann kompiliert und bei Bedarf ausgeführt.
Die ersten Entwicklungen von Compilern sind phc und " Roadsend PHP Compiler " (Kompilierung in C ) sowie Quercus und Project Zero. Es befand sich zwei Jahre vor der Veröffentlichung der kostenlosen Software in der Entwicklung2. Februar 2010. Schwierigkeiten führten dazu, dass das Projekt hinter dem Zeitplan zurückblieb.
Facebook beschließt, unter der Leitung von Haiping Zhao einen eigenen Compiler zu entwickeln.
Das erste entwickelte Produkt, zunächst HipHop für PHP , später HPHPc , ist ein PHP- Code- Compiler . Es wandelt den PHP-Quellcode in optimiertes C ++ um und kompiliert ihn mit g ++ in die Maschinensprache . HipHop enthält einen Codetransformator, eine Neuimplementierung von PHP-Abhängigkeiten und ein Umschreiben vieler gängiger PHP-Erweiterungen, um diese Leistungsoptimierungen zu nutzen.
HipHop wurde zwischen 2008 und 2010 von Facebook entwickelt , um die Belastung seiner Server zu verringern. Es wurde mit über 300.000 Codezeilen veröffentlicht, die in C ++ und C als freie Software unter den Bedingungen der Version 3.01 der PHP-Lizenz geschrieben wurden .
Sie entwickelten auch HPHPi , einen experimentellen Code-Interpreter, mit dem der Code nicht vorkompiliert werden muss, sodass Entwickler ihren Code in einer Umgebung debuggen können, in der dieselben Ausführungsbedingungen wie bei HPHPc simuliert werden.
Der Leistungsgewinn und die Optimierungsmöglichkeiten erreichten eine Obergrenze. Die Wartung von HPHPc und HPHPi, zwei getrennten Codebasen, wurde zunehmend schwieriger, während die Unterstützung einiger PHP-Funktionen wie eval () noch nicht implementiert war.
Um diese Probleme zu beheben, wurde 2010 ein Projekt zur Erstellung einer virtuellen Maschine gestartet und HHVM ins Leben gerufen. Es wird Ende 2012 eine ähnliche Leistung wie HPHPc erzielen. Von da an wird es von Facebook in der Produktion verwendet.