• IT-Karriere:
  • Services:

Patch soll Geschwindigkeit von PHP verdoppeln

Zend Engine 1 bietet offenbar hohes Potenzial für Effizienzsteigerungen

Thies Arntzen und Sterling Hughes haben sich am Rande des LinuxTags zusammengesetzt und einige Änderungen für die Zend Engine 1, den Kern von PHP 4.x, entwickelt, die die Geschwindigkeit von PHP deutlich erhöhen. Die in einem Patch zusammengefassten Änderungen können die Geschwindigkeit von PHP mitunter mehr als verdoppeln.

Artikel veröffentlicht am ,

Dabei griffen Arntzen und Hughes unter anderem auf eine Idee aus Parrot auf, einer Virtual Machine zur effizienten Ausführung von Bytecode, die unter anderem in Perl 6 zum Einsatz kommen soll. Sie nutzen ein errechnetes Goto-Statement und betten die Adresse des folgenden Opcode in die Instruktion ein, was Schritte, um zum nächsten Opcode zu gelangen, verkürzt. Dies funktioniert nur mit dem GCC und setzt eine Architektur voraus, die entsprechende Gotos unterstützt.

Stellenmarkt
  1. Sky Deutschland GmbH, Unterföhring bei München
  2. Kassenärztliche Bundesvereinigung, Berlin

Als besonders ineffizient identifizierten Arntzen und Hughes die Register-Lookups der Zend Engine 1, die immer wieder ausgeführt wurden, auch wenn eine Variable schon gefunden wurde. Sie überprüfen immer wieder die Adresse einer Variablen, nicht deren Inhalt, so dass sich die Ergebnisse problemlos cachen lassen. Mit einem speziellen Instruktionen-Speicher konnten die beiden die Geschwindigkeit der Register-Abrufe fast verfünffachen. Die allein bringe für PHP insgesamt eine Geschwindigkeitssteigerung von 40 Prozent.

Darüber hinaus wurden die Funktionsaufrufe optimiert, um variablenlose Funktionsaufrufe zu cachen, der Code für Vergleichsoperatoren sowie einige Funktionen zum Speichermanagement überarbeitet und einige Änderungen aus der Zend-Engine 2 in die Zend Engine 1 integriert. Zudem wurden einige Instruktionen so modifiziert, dass sie von bestimmten Compiler-Switches des GCC besser profitieren können.

Insgesamt deuten die Modifikationen an der Zend Engine 1 auf eine Beschleunigung von PHP insgesamt um etwa den Faktor 2 hin, was aus den Ergebnissen der von Arntzen und Hughes durchgeführten Benchmarks hervorgeht. Allerdings stehen die entsprechenden Änderungen derzeit nur in Form eines Patches bereit, der auf eine aktuelle Version von PHP 4.3.3 angewendet werden kann. Wann und ob die oben beschriebenen Änderungen in die Standard-Distribution von PHP einfließen ist noch unklar. Es scheint aber durchaus möglich, dass zumindest Teile ihren Weg in kommende PHP-4.3.x- oder 4.x-Versionen finden könnten.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Anzeige
Spiele-Angebote
  1. 16,49€
  2. 68,23€ (PS4, Xbox One)

Mario 29. Aug 2003

Die Strings wurden schon vor einigen Versionen sehr beschleunigt und als lahm würde ich...

Mario 29. Aug 2003

Ja. Schön für die anderen. Mario

Hartmut Holzgraefe 29. Aug 2003

Drei Dinge die mir dazu auf Anhieb einfallen: - Java 'String' ist lahm und...

Hartmut Holzgraefe 29. Aug 2003

Du willst sagen: es war keine php_mysql.dll dabei und du besitzt kein VisualStudio? Für...

Hartmut Holzgraefe 29. Aug 2003

lasst uns mal bitte ehrlich bleiben: Yahoo! stellt alles überhalb der in C...


Folgen Sie uns
       


DLR Istar vorgestellt - Bericht

Die Falcon 2000LX des DLR hat weltweit einzigartige Eigenschaft: sie kann so tun, als wäre sie ein anderes Flugzeug.

DLR Istar vorgestellt - Bericht Video aufrufen
    •  /