PHPNG: PHP um bis zu 30 Prozent beschleunigt

Mit einer neuen PHP-Engine sollen Anwendungen um bis zu 30 Prozent schneller arbeiten. Dafür sorgen Änderungen an der internen Datenrepräsentation sowie an der VM.

Artikel veröffentlicht am ,
Die PHP Engine wird beschleunigt.
Die PHP Engine wird beschleunigt. (Bild: PHP.net)

Um die Ausführung von PHP-Anwendungen zu beschleunigen, haben Mitarbeiter der Firma Zend mit JIT-Techniken und LLVM experimentiert. Das bewirkte aber nicht viel, so dass das Team große Umbauarbeiten an den internen Datentypen vornahm - und nun auf Leistungssteigerungen zwischen 10 und 30 Prozent verweisen kann, wie Dmitry Stogov schreibt.

Stellenmarkt
  1. Technical Consultant ServiceNow (m/w/d)
    operational services GmbH & Co. KG, Frankfurt am Main, Berlin, Dresden, München
  2. Software Product Owner Mechatronic Chassis Systems (m/w/d)
    Schaeffler Technologies AG & Co. KG, Herzogenaurach
Detailsuche

Die Entwickler hielten die virtuelle Maschine zwar für optimiert, sie arbeitete aber mit zu vielen Speicherzuweisungen und Referenzzählern. Deshalb sollten die Datentypen so geändert werden, dass "Heap-Zuweisungen minimiert werden", woran etwa vier Monate gearbeitet wurde.

Mehr Stack, weniger Zeiger

Bisher werden sämtliche Werte von der Zend-Engine auf dem Heap-Speicher verwaltet. Sie beanspruchen damit die Referenzzählung und den Garbage Collector. Außerdem arbeitet die Engine hauptsächlich mit Zeigern auf die sogenannten Zvals, die interne Datenstruktur für alle Variablen.

Die neue Implementierung verzichtet auf Zeiger und speichert die Zvals auf dem Stack, in Hashtable-Buckets sowie Property Slots. Das verringere die Operationen auf dem Heap "dramatisch" und vermeidet Referenzzählung und Garbage Collector für einfache Datentypen.

Golem Akademie
  1. Docker & Containers - From Zero to Hero
    5.-7. Oktober 2021, online
  2. PostgreSQL Fundamentals
    14.-17. September 2021, online
Weitere IT-Trainings

Zudem verwendet die neue Implementierung mehr Stack-Speicher als bisher und verzichtet in bestimmten Fällen auf Copy-on-Write. Die Daten werden stattdessen direkt kopiert. Die teilweise veränderten internen Datentypen, die die neue Engine benutzt, sind im Wiki der PHP-Entwickler dokumentiert.

Noch sind die Arbeiten an der neuen Engine nicht abgeschlossen und auch einige Erweiterungen lassen sich noch nicht nutzen. Trotzdem rufen die Entwickler die Community dazu auf, die Neuimplementierung mit vielen Anwendungen zu testen und sich an der Entwicklung zu beteiligen.

Die neue Datenverwaltung könnte künftig auch als Grundlage für weitere Arbeiten zur Beschleunigung dienen, etwa für die anfangs erwähnten JIT-Techniken. Eine Kompilieranleitung findet sich im Wiki. Mit der HHVM und der Sprache Hack versucht Facebook ebenfalls PHP zu beschleunigen.

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


Aktuell auf der Startseite von Golem.de
Neues Betriebssystem von Microsoft
Wir probieren Windows 11 aus

Windows 11 ist bereits im Umlauf. Wir haben die Vorabversion ausprobiert und ein schickes OS durchstöbert. Im Kern ist es aber Windows 10.
Ein Hands-on von Oliver Nickel

Neues Betriebssystem von Microsoft: Wir probieren Windows 11 aus
Artikel
  1. Niedrige Inzidenzen: Homeoffice-Pflicht soll am 30. Juni enden
    Niedrige Inzidenzen
    Homeoffice-Pflicht soll am 30. Juni enden

    Die allgemeine Pflicht zum Homeoffice soll Ende des Monats fallen. Coronatests sollen aber weiterhin in Betrieben angeboten werden.

  2. Nach Juni 2022: Europäische Union will freies Roaming verlängern
    Nach Juni 2022
    Europäische Union will freies Roaming verlängern

    Die Regelung vom Juni 2017 soll verlängert und verbessert werden. Ein Ende von 'Roam like at home' wäre undenkbar.

  3. Websicherheit: Wie KenFM von Anonymous gehackt wurde
    Websicherheit
    Wie KenFM von Anonymous gehackt wurde

    Die Webseite AnonLeaks berichtet, wie das Defacement von KenFM ablief: durch abrufbare Backupdaten und das Wordpress-Plugin Duplicator Pro.
    Von Hanno Böck

DASPRiD 08. Mai 2014

Keine Lust gerade alles zu kommentieren, aber dieser Punkt ist einfach nur falsch...

redmord 07. Mai 2014

0+9999999999999999; = 10000000000000000 0.3333333*3 = 0.9999998999999999

SvenCloud 06. Mai 2014

Geht es nicht im den "Garbage" Collector statt "Garage"? Grüße~ :3


Folgen Sie uns
       


Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Schnäppchen • Dualsense Midnight Black + Ratchet & Clank Rift Apart 99,99€ • Saturn Super Sale (u. a. Samsung 65" QLED (2021) 1.294€) • MSI 27" FHD 144Hz 269€ • Razer Naga Pro Gaming-Maus 119,99€ • Apple iPad Pro 12,9" 256GB 909€ [Werbung]
    •  /