phpng: 30 Prozent Beschleunigung dank refaktorisierter PHP-Engine
Um weiterhin PHPs Geschwindigkeit und Leistungsfähigkeit in die Höhe treiben zu können, hat man sich bei Zend an ein Refactoring der PHP Engine gemacht. Das Ergebnis soll unter anderem besser mit dem dynamischen Speicher umgehen.
- Julia Schmidt
Der an PHP mitarbeitende Entwickler Dmitry Stogov hat auf der Mailingliste der Skriptprache eine refaktorisierte PHP Engine vorgestellt, die PHP jetzt um bis zu 30 Prozent beschleunigen können soll. Sowohl in Benchmarks als auch in "echten Anwendungen" habe sich phpng schon beweisen können, so der bei Zend Technologies angestellte Stogov, und es sei sogar noch weiteres Potenzial vorhanden.
Nach den vorangegangenen Erfolgen in der Geschwindigkeitsoptimierung begann man, mit dem derzeit aktuellen PHP 5.5 zu experimentieren, da anderweitig keine bemerkenswerten Gewinne mehr zu erzielen gewesen wären. Nachdem die Bemühungen sich hier zu Anfang auf den JIT-Compiler (Just in Time) konzentrierten, stellten die Entwickler bald fest, dass ein Teil der Zeitverluste auf eher elementarer Ebene durch Datenstrukturen und damit zusammenhängend Speicherzuweisung begründet waren. Aus diesem Grund entschieden sie sich dafür, die Datentypen derart zu ändern, dass sie möglichst wenig dynamischen Speicher reservieren.
Das Ergebnis dieser Bemühungen ist phpng (PHP Next Generation), ein Refactoring von PHP 5.5, das Leistung und Speichernutzung verbessern und als Grundlage für weitere Maßnahmen dienen soll. Neben den Verbesserungen in der Nutzung des Heap vermeidet die Implementierung auch die Referenzzählung und Garbage Collection bei Datentypen wie bool, long, double und interned string. Die Arbeiten an der Engine sind noch nicht abgeschlossen, da man zunächst prüfen wollte, ob die Idee überhaupt Potenzial hat. PHP-Programmierer sind dazu aufgerufen, die Engine auszuprobieren – allerdings ist zu beachten, dass sie noch nicht alle Erweiterungen unterstützt, weshalb es hier zu Fehlern kommen kann.
Informationen zu phpng sind im PHP-Wiki zu finden, für die Repräsentationen der Werte gibt es dort auch ein eigenes Kapitel. Der Quelltext des bearbeiteten PHP-Entwicklungszweigs ist im Git-Repository hinterlegt. Im Wiki stehen außerdem Zukunftspläne zur weiteren Leistungssteigerung. (jul)