PHP-Template-Engine Shootout: SithTemplate – Twig – h2o

Vor gut drei Monaten habe ich die PHP-Template-Engines SithTemplate und Twig mit XHProf untersucht. Nun ist es Zeit für ein Update – zum einen treten die neuen Versionen gegeneinander an, zum anderen betritt ein neuer Mitspieler namens h2o die Arena der PHP-Template-Engines
mit Django-kompatibler Syntax.

Für die Grundlagen verweise ich an dieser Stelle auf den damaligen Blog-Eintrag “Profiling PHP mit XHProf am Beispiel der Template-Engines SithTemplate und Twig”. Die Voraussetzungen sind identisch geblieben – ein einfaches Template, zwei Ersetzungen, eine Ausgabe eines Arrays mit 100 Elementen.

Die Template-Engines wurden in der Standard-Installation betrieben, jeweils ist das File-Caching aktiviert. Alle Template-Engines erzeugen beim ersten Aufruf aus Template eine oder mehrere PHP-Dateien. Die Template-Engines sind so konfiguriert, dass dieser Schritt nur dann erneut durchgeführt wird, wenn sich die Template-Quelldatei geändert hat. Ansonsten wurden keine weiteren Optimierungen durchgeführt, etwa
die Verwendung von Memcache oder APC anstatt des Dateisystems zur Speicherung der erzeugten Dateien.

Die Ergebnisse:

SithTemplate 0.9.2 SithTemplate 1.1 Twig 0.9.9 Twig 1.0.0-RC2 h2o 0.4
Total Incl. Wall Time (microsec): 8,188 microsecs 5,504 microsecs 11,564 microsecs 13,341 microsecs 27,411 microsecs
Total Incl. CPU (microsecs): 8,000 microsecs 4,001 microsecs 12,001 microsecs 12,001 microsecs 28,002 microsecs
Total Incl. MemUse (bytes): 1,208,040 bytes 686,384 bytes 1,489,584 bytes 1,140,056 bytes 1,541,408 bytes
Total Incl. PeakMemUse (bytes): 1,120,024 bytes 657,296 bytes 1,463,320 bytes 1,127,768 bytes 1,510,752 bytes
Number of Function Calls: 122 85 598 1459 3790

 

Die Ergebnisse sprechen erneut für sich. SithTemplate konnte in der aktuellen Version noch zulegen, während sich Twig gegenüber der letzten Version sogar mehr Zeit lässt bzw. mehr Ressourcen verbraucht. h2o landet abgeschlagen auf dem letzten Platz.

Leider wird SithTemplate seit kurzem nicht mehr aktiv weiterentwickelt, da sich der Autor von der PHP-Programmierung verabschiedet hat. Die Lizenz ist jedoch freier denn je – es handelt sich um die “Unlicense”, früher als Public Domain bezeichnet. Insofern spricht nichts dagegen, dass sich einige Enthusiasten zur Weiterentwicklung finden – alternativ lassen sich etwaige Fehler auch eigenständig beheben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Tags:
Kategorien: PHP Programmierung