PHP-Beschleuniger

PHP-Beschleuniger sind Programme, welche die Ausführung von PHP-Skripten beschleunigen sollen. Die Basis solcher Beschleuniger bildet meist ein Bytecode-Cache im Zusammenspiel mit einem Optimierer. Ab Version 5.5 verwendet PHP den Zend Optimizer+ als nativen Beschleuniger.[1]

Funktionsweise

Ein PHP-Skript wird zuerst in einen Bytecode übersetzt, bevor es ausgeführt wird. Somit wäre es notwendig, diesen bei jedem Aufruf neu zu generieren. Durch die Verwendung eines Bytecode-Caches entfällt die ständig neue Generierung, da der Bytecode nur einmal generiert und dann zwischengespeichert wird. Zusätzlich können PHP-Beschleuniger Optimierungen am generierten Bytecode vornehmen, sodass die Ausführung nochmals beschleunigt wird.[2]

Geschichte

Bis zur Version 5.5 hatte PHP keinen integrierten Bytecode-Cache, sodass es nötig war, PHP-Skripte bei jedem Aufruf neu zu übersetzen, was zu einer zusätzlichen Serverlast führte. Um das ständige Neu-Übersetzen zu verhindern, wurden externe Bytecode-Caches als Erweiterungen entwickelt, welche diese Funktion nachrüsten sollten. Der Einsatz einer solchen Erweiterung führte zwar zu einer Steigerung der Ausführgeschwindigkeit, brachte aber andere Probleme mit sich. So sorgte beispielsweise ein fehlerhaftes Caching des Alternative PHP Cache im Zusammenspiel mit PHP 5.4 für Schwierigkeiten. Als der vorher kommerzielle Zend Optimizer+ zur Open-Source-Software wurde,[3] ist er in die nächstfolgende PHP Version 5.5 als OPCache in die Software aufgenommen worden.[4][5]

Alternative Compiler

Es gibt alternative PHP-Compiler wie PHC, HipHop oder Roadsend, welche keine Erweiterung, sondern ein eigenständiges Programm darstellen, und den PHP-Code zunächst in C oder C++ Quelltext übersetzen, woraus dann Maschinensprache erzeugt wird. Durch den Einsatz kann die Serverlast und der Speicherverbrauch ebenfalls reduziert werden, in der Regel mehr als mit einem Bytecode-Cache.[6]

Der Nachteil von alternativen PHP-Compilern ist jedoch, dass nicht der gesamte Sprachumfang unterstützt wird, da es sich dabei um eine eigene Implementierung der Scriptsprache handelt. Dem hingegen verwenden andere Technologien von Grund auf einen Maschinencode-Compiler, so zum Beispiel die Node.js-Plattform, welche den ausgehenden JavaScript-Code mittels der integrierten V8-Engine im Just-in-time-Verfahren in nativen Maschinencode übersetzt. Da es sich um keine eigenständige Implementierung handelt, ist hierbei auch der gesamte Sprachumfang von JavaScript verfügbar, obwohl der Quellcode der eigentlichen Scriptsprache zu optimiertem Zielcode kompiliert wurde.[7]

Siehe auch

Einzelnachweise

  1. Alexander Neumann: PHP 5.5 mit Bytecode-Cache Zend Optimizer+ erschienen. In: heise Developer. 21. Juni 2013, abgerufen am 22. Mai 2016.
  2. Michael Walter: Voll Karacho. PHP-Beschleuniger im Vergleich. In: Linux-Magazin. Computec Media GmbH, April 2005, abgerufen am 22. Mai 2016.
  3. Jens Ihlenfeld: PHP: Zend Optimizer+ ist jetzt Open Source. In: golem.de. 13. Februar 2013, abgerufen am 22. Mai 2016.
  4. PHP 5.5.0 released. In: php.net. The PHP Group, 20. Juni 2013, abgerufen am 22. Mai 2016 (englisch).
  5. OPcache Einführung, php.net
  6. Jens Ihlenfeld: HipHop - Facebook beschleunigt PHP. In: golem.de. 3. Februar 2010, abgerufen am 22. Mai 2016.
  7. PHP oder Node.js? – Vorteile und Nachteile | NodeCode. In: NodeCode. 8. Mai 2014, archiviert vom Original (nicht mehr online verfügbar) am 14. Mai 2016; abgerufen am 22. Mai 2016.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/nodecode.de
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.