TypePHP: Der AOT-Compiler, der PHP in nativen Maschinencode übersetzt

TypePHP: Der AOT-Compiler, der PHP in nativen Maschinencode übersetzt
Blog 2 Min. Lesezeit
TypePHP ist ein Ahead-of-Time-Compiler des Swoole-Teams, der PHP-Quellcode über C++17 in nativen Maschinencode übersetzt. Benchmarks zeigen 6–8× schnellere Ausführung.

Was ist TypePHP?

TypePHP ist ein Ahead-of-Time (AOT) Compiler des Swoole-Teams. Er übersetzt PHP-Quellcode in C++17, das dann in nativen Maschinencode compiliert wird, der direkt auf der CPU läuft. Im Gegensatz zu einem Bytecode-Cache oder JIT interpretiert TypePHP zur Laufzeit keine Opcodes — die Kompilierung ist abgeschlossen, bevor das Programm startet.

Benchmark: Wie viel schneller?

Die offiziellen PHP-Sprachbenchmarks (bench.php und micro_bench.php) aus dem PHP-Quellcode, mit -O3 kompiliert:

  • bench.php: PHP 5,034 s → TypePHP 0,603 s — ca. 8× schneller
  • micro_bench.php: PHP 13,045 s → TypePHP 2,021 s — ca. 6,5× schneller

Bei Arrays: std::array (TypePHP AOT) ist ca. 10× schneller als PHP-Arrays (auch mit JIT) und auf Augenhöhe mit C++ std::vector.

Drei Build-Modi

  • bin (Standard): Eigenständige native ausführbare Datei — kein PHP CLI zur Laufzeit nötig
  • ext: Ladbare PHP-Erweiterung
  • lib: Gemeinsam genutzte Bibliothek

Schlüsselfeatures

  • Natives Typsystem: int, float, bool werden direkt auf C++-Skalare abgebildet.
  • Stark typisierte Container: std::vector, std::map — bis zu 10× schneller als PHP-Arrays.
  • Gemischtes C++/PHP: Kritische Rechenoperationen in C++ schreiben und aus PHP aufrufen.
  • Quellcode-Schutz: Native Binärdateien statt lesbarer PHP-Dateien ausliefern.

Einschränkungen

Nicht alle PHP-Funktionen werden unterstützt. Globaler Scope ist nur für Deklarationen; ausführbarer Code muss in Funktionen stehen. Bestehende große PHP-Anwendungen können nicht direkt eingespeist werden — die Inkompatibilitätsliste muss vorher geprüft werden.

PHP-Anwendungen mit EU-Hosting? Unsere Cloud-Server und Webhosting-Pakete.

Wie unterscheidet sich TypePHP von PHPs eingebautem JIT?

PHPs JIT optimiert häufig ausgeführte Codepfade zur Laufzeit und läuft noch immer innerhalb der Zend VM. TypePHP kompiliert vorab — zur Laufzeit gibt es keinen Interpreter oder keine PHP VM. Das Ergebnis ist wesentlich vorhersagbarere und deterministischere Performance.

Kann ich eine bestehende Laravel-Anwendung mit TypePHP kompilieren?

Noch nicht. TypePHP unterstützt nicht alle dynamischen PHP-Features, und ausführbarer Code im globalen Scope ist nicht erlaubt. Laravels Bootstrap-Layer kollidiert mit diesen Einschränkungen. Die Zielgruppe sind heute neue, statisch strukturierte Projekte und CLI-Tools.

TypePHP AOT-Compiler Swoole PHP nativ PHP Performance

EuroVDC

Website sicher und schnell hosten

NVMe SSD · Kostenloses SSL · cPanel inklusive

Web-Hosting-Pläne ansehen

Fanden Sie diesen Inhalt hilfreich?

Person fand es hilfreich

In sozialen Medien teilen

TypePHP: Der AOT-Compiler, der PHP in nativen Maschinencode übersetzt