Sowohl HTTP/2 mit Server Push – als auch PHP 7 – und soweit 'Zend opCache'

Mit HTTP/2 & Co setzt sich das Thema Pagespeed immer mehr in den Hintergrund. In Relation von Messwerten ergeht es nur mehr um paar 10tel sec bis einige 100stel sec. Die weiteren Optimierungen durch Plug-ins laufen wie ins Leere. Benchmark-Tests* wie Pagespeed Insights, Pingdom, GTmetrix sind mit geläufigen Plug-ins gewisse Ergebnisse besser. Aber von wegen Pagespeed nicht direkt auf der Website. Die „Erweiterung“ an Codes relativieren scheinbar die Performanz auf der Website? Also der messbare Speed auf der Website ergibt wiederum selbes, ob mit oder ohne Erweiterungen. – wenn nicht aber 🙂

* Ein Test unter Verwendung eines Maßstab (Benchmarks) zur Bewertung der Leistung einer Website bzw. eines Computersystems.

Erfahrungswert

Bspw. meiner Website gehen Optimierungen zum PageSpeed ins Leere. Das ist sowohl HTTP/2 mit Server Push – als auch PHP 7 – und soweit 'Zend opCache' zu verdanken. Bei bplaced ist schon seit PHP 5.5 'Zend OpCache' in Applikation. Support-bplaced: „Die Erfahrungen mit 'opCache' haben dazu beigetragen, dass dieser nun in Verbindung mit PHP 7 optimal im Einsatz ist. Damit ist mit bplaced bei allen PHP-Versionen 'Zend opCache' aktiviert. Vollautomatisch, und hiermit ist manuelles anlegen von OpCache-Verzeichnissen oder Löschen des Cache nicht erforderlich.“

Recherche Zend Engine OpCache

Ein 'Opcode-Cache' ist ein System, um das Ergebnis der PHP-Code-Kompilierung* in Bytecode zwischenzuspeichern.

* Das Übersetzen des Quelltextes einer Programmiersprache in ein ausführbares Programm ergeht die Bezeichnung 'kompilieren' (engl.: to compile). Ein solches Übersetzungs-Programm heißt Compiler.

Um die vielen leistungsstarken PHP-Funktionen zu nutzen, ist der PHP-Interpreter* auf dem Webservers installiert. Der PHP-Interpreter wandelt die Bytecodes in Befehle für Mikroprozessoren. Hiermit sind die Bytecodes für eine virtuelle Maschine geeignet. Eine virtuelle Machine ist auch 'Zend Engine' und erzeugt den Mikroprozessor-Code. Hiermit ist dieser für CPU-Architekturen und Betriebssysteme einsetzbar.

* Ein Interpreter (Interpretierer) ist ein Programm, das einen Quellcode einliest, analysiert und ausführt. Demzufolge übersetzen die Assemblern oder Compilern auf dem System direkt in einen ausführbaren Mikroprozessor-Code.

Dieser Bytecode wird aber nach der Ausführung des Scripts verworfen und ist jedem Aufruf neu zu generieren. Die neue Generierung dauert mitunter länger als die Ausführung des Scripts. Darum gibt es den in PHP fest integrierten OpCache (Opcode-Cache). Der optimiert den Bytecode und speichert diesen für kommende Aufrufe. Ferner wurde bis zur PHP-Versionen 7.0 der OpCache im Arbeitsspeicher abgelegt, welches für Shared-Hosting-Servern nicht real zumindest nur diffizil einzusetzen war. Somit war OpCache nur mit V-Server oder Rootserver zu nutzen. In Folge PHP 7.0 ist der Bytecode vom OpCache auch in Dateien abzuspeichern und somit auf Shared-Hosting-Servern zu nutzen.

Die gesamt Ladezeit einer Webseite

  • OpCache lässt die PHP-Anwendungen um etwa 50% beschleunigen und reduziert nur die Ausführungszeit für PHP-Scripte auf dem Webserver.
  • Die Gesamtladezeit einer Webseite ergeht den Faktoren wie Größe und Anzahl der Bilder, CSS- und JavaScript-Dateien.

Hier bspw. 'wegerl.at', gehen zum PageSpeed die üblichen Erweiterungen mit Plug-ins ins Leere. Sind also der gesamten Ladezeit der Website sekundär. Wie gesagt! –, wenn nicht aber 🙂

Benchmark-Test

Inwieweit es nun SinN macht, der Website den Messwerten zuliebe mit Plug-ins oder so ohne Erweiterungen? Dies ist jedem selbst überlassen.

Plug-ins wie  Autooptimize und Async JavaScript auch Zusammenhangs sind die Tools durchwegs zu nutzen. Der Einstellungen sind einige Dinge, die erst mal zu durchblicken sind. Geradewegs sind hierdurch weitere Lernschritte möglich. Folglich kann man den Messwerten Benchmark-Test stoiz sein und seine Freude haben.