Robert Eisele

Hacks sollen PHP beschleunigen

PHP ist zu langsam, also müssen Hacks her, um die Scriptsprache zu beschleunigen. Entwickler Robert Eisele hat seine Version von PHP 5.3.6 bereitgestellt, die nicht nur einen Geschwindigkeitsschub, sondern auch eine verbesserte Usability verspricht.

Artikel veröffentlicht am ,
Robert Eisele: Hacks sollen PHP beschleunigen
(Bild: PHP-Projekt)

Seine Version von PHP 5.3.6 solle nicht nur schneller laufen, sondern auch eine verbesserte Usabilty bieten, sagt PHP-Entwickler Robert Eisele. Er wolle seine Version aber nicht pflegen, sondern nur als Proof-of-Concept präsentieren. PHP so zu verändern, dass sich schneller entwickeln lasse, und zu beschleunigen mache ihm Spaß, schreibt Eisele in seinem Blog.

PHP beschleunigen

Stellenmarkt
  1. Software Developer (m/w/d)
    Zedas GmbH`, Senftenberg
  2. IT Systemadministrator (m/w/d) mit Projektbezug
    Präzisionstechnik Resources Altenburg GmbH, Altenburg, Westhausen, Immenhausen
Detailsuche

Um PHP zu beschleunigen, hat Eisele zunächst die beiden Funktionen strlen() und count() abgeändert, so dass sie ohne die Funktion isset() auskommen. Während des Kompilierens werden Zeichenketten in strlen() automatisch in numerische Konstanten umgewandelt. Zusätzlich sind die Konstanten true, false und null direkt im Parser implementiert, um Lookups zu vermeiden. Die Funktion strtr() verwendet eine interne Tabelle, um Zeichenketten zu ersetzen. In Eiseles PHP-Fork wird die Tabelle hartcodiert, damit sie nicht bei jedem Aufruf erneut generiert werden muss.

Die intelligente Zeichenkettenfunktion smart_str_append_long() will Eisele so optimiert haben, dass Ganzzahlen schneller eingefügt werden können. Zudem hat er die Funktion smart_str_append_const() erschaffen, über die intelligente Zeichenketten mit Konstanten verknüpft werden können.

Zeitabfragen über die Funktion time() zögen immer auch den Aufruf time(NULL) nach sich, so Eisele. Zwar sollte die Abfrage über das Server Application Programming Interface (SAPI) laufen, die time(0) im Zwischenspeicher bereithält, allerdings werde die Abfrage nur selten verwendet. Also habe er sämtliche time()-Funktionen dort entfernt. Zeitabfragen werden über eine neue Schnittstelle in CGI/FCGI abgefragt, die wiederum über RAW_TIME in eigens gepatchten Versionen der Webserver Lighttpd und Nginx ausgegeben werden. Die Optimierung soll aber optional bleiben, sie kann über die neue Variable use_sapi_time aktiviert werden.

Golem Akademie
  1. Penetration Testing Fundamentals: virtueller Zwei-Tage-Workshop
    17.–18. Januar 2022, Virtuell
  2. Cloud Computing mit Amazon Web Services (AWS): virtueller Drei-Tage-Workshop
    14.–16. Februar 2022, virtuell
Weitere IT-Trainings

Außerdem habe er die globale Variable $_REQUEST als optional deklariert. Er selbst brauche sie nicht, denn er setze die Variablen direkt ein, die er benötige.

Neue Funktionen und mehr Usability

Eisele hat auch etliche neue Funktionen für PHP erdacht. Die meisten betreffen die Verarbeitung von Zeichenketten, darunter die Funktion string strcal(string $format, string $str[, int $len=-1]), die prüfen soll, ob einen Zeichenkette im richtigen Format vorliegt, oder mixed timechop(int $time[, mixed $format=2, bool $is_array=false]), die Zeitangaben in ihre Einheiten zerlegt. Weitere Funktionen betreffen die Verarbeitung von Zahlen, etwa um deren geltende Stellen anzuzeigen oder Zahlen einen minimalen oder maximalen Wert zuzuweisen.

Eisele will auch die Usability von PHP verbessern und hat dafür zusätzliche Ideen eingepflegt. So können mit der Funktion strtr() mehrere Zeichenketten auf einmal gelöscht werden, statt einzelne str_replace()-Aufrufe zu benötigen. Binäre Zahlen lassen sich mit dem Präfix 0b definieren.

Eine komplette Liste aller Änderungen hat Eisele auf seiner Webseite zusammengestellt. Dort ist auch der Code über Github erhältlich. Ob die Änderungen in den Hauptentwicklungszweig von PHP einfließen, steht noch nicht fest. Einige Funktionen wie die Zeitabfragen ziehen auch Änderungen in den Webservern nach sich. Zumindest die Resonanz unter Eiseles Posting ist überwiegend positiv.

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
S-Klasse mit Level 3
Mercedes darf hochautomatisiert fahren

Autonom fahren ist es noch nicht, aber Level 3 darf Mercedes nun 2022 mit dem Drive Pilot in der S-Klasse und im EQS anbieten.

S-Klasse mit Level 3: Mercedes darf hochautomatisiert fahren
Artikel
  1. Verkehrssicherheit: Teslas werden zu rollender Spielkonsole und zur Gefahr
    Verkehrssicherheit
    Teslas werden zu rollender Spielkonsole und zur Gefahr

    Nach einem Software-Update können bei laufender Fahrt im Tesla drei Spiele gespielt werden. Die Verkehrssicherheitsbehörde ist entsetzt.

  2. Xiaomi: Neue Redmi-Smartwatch kostet 70 Euro
    Xiaomi
    Neue Redmi-Smartwatch kostet 70 Euro

    Xiaomis Redmi Watch 2 Lite sieht aus wie eine Apple Watch und kommt mit Blutsauerstoffmessung. Neu sind auch In-Ear-Kopfhörer im Airpods-Design.

  3. Coronapandemie: Leuchtende Maske erkennt Corona-Infektion
    Coronapandemie
    Leuchtende Maske erkennt Corona-Infektion

    Ein japanisches Team hat einen Corona-Test mit einem Farbstoff entwickelt. Der leuchtet, wenn eine Person mit dem Corona-Virus infiziert ist.

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
    Daily Deals • RAM-Module und SSDs von Crucial im Angebot • Acer-Monitore zu Bestpreisen (u. a. 27" FHD 165Hz OC 199€) • Kingston PCIe-SSD 1TB 69,90€ & 2TB 174,90€ • Microsoft Flight Simulator Xbox 29,99€ • Alternate (u. a. Kingston A400 480 GB SSD 37,99€) • Release: Halo Infinite 68,99€ [Werbung]
    •  /