WordPress mit dem PHP ByteCode-Cache beschleunigen

WordPress zählt bereits zu den beliebtesten PHP-Frameworks. Doch genau wie alle anderen PHP-Frameworks bringt auch WordPress einige Nachteile mit sich:
Bedingt durch Ihre Architektur müssen Frameworks massenhaft PHP-Code zur Laufzeit laden, um dynamisch alle Inhalte darzustellen. Die Performanceeinbußen hierbei sind teilweise eklatant. Der ByteCode-Cache könnte Abhilfe schaffen:

Was ist der ByteCode-Cache‌
Wie alle Skriptsprachen wird auch der PHP-Code der Webseiten zur Laufzeit interpretiert. Er liegt also nicht wie fertige Programme als maschinennaher Code vor. Damit ergeben sich bereits zwei Nachteile:
Der PHP-Code muss zunächst von der, vergleichsweise langsamen, Festplatte geladen werden, dann erst in Maschinencode umgewandelt und ausgeführt werden, bevor ein Ergebnis an den Benutzer zurückgeliefert werden kann.
Dieser Vorgang wiederholt sich dann jedes Mal wenn das entsprechende Skript geladen werden soll. Auch wenn dieses bereits kurz vorher vom gleichen System angefordert wurde.
Genau an diesem Punkt setzt der ByteCode-Cache ein: Er speichert die einmal geladenen und interpretierten (maschinennahen) PHP-Skripte im Arbeitsspeicher. Dadurch können diese beliebig oft wieder geladen und ausgeführt werden, ohne dass diese erneut interpretiert werden müssen.

Was bewirkt er?

Durch diese Technik können Webseiten mit hohem Anteil an PHP-Skripten, hierunter fallen kategorisch alle Webseiten die PHP-Frameworks einsetzen, einen 2-5 fachen Performance-Zuwachs erreichen. Wichtig ist, dass im Vergleich zu anderen Caches, nicht das Ergebnis, sondern das Skript an sich im Cache vorliegt und somit weiterhin dynamisch die gewünschten Inhalte liefert.

Wie funktioniert der ByteCode-Cache?

Abhängig von Anzahl der Aufrufe, der zu berechnenden Daten und dem Zeitstempel der letzten Änderung, werden die Skripte als Bytecode im Cache abgelegt und abrufbar gehalten.
Wird also ein Skript verändert, wird dieses beim nächsten Aufruf erneut interpretiert und dann wieder im Cache abgelegt. Durch den ByteCode-Cache entstehen also keine Webseiten mit veralteten Inhalten.

Wo wird er verwendet?

Der ByteCode-Cache kann derzeit als PHP Extension auf dem Webserver nachinstalliert werden. Es werden bereits von mehreren Anbietern Lösungen hierzu angeboten. Diese bieten jeweils einen lauffähigen Cache und unterscheiden sich überwiegend in ihrer Kompatibilität. Viele Webhoster bieten allerdings bereits jetzt vorinstallierte Caches für ihre Systeme an. Im Zweifel oder bei auftretenden Problemen mit der Seitendarstellung sollte Rücksprache mit dem Support des Webhosters gehalten werden.

Fazit

Insbesondere umfangreiche Webseiten können durch den Einsatz von ByteCode-Caches ihre Performance wesentlich steigern. Nichtsdestotrotz sollten Administratoren wie auch Entwickler das Caching nicht als Allheilmittel verstehen. Skripte die nur dann performant arbeiten, wenn sie im Cache liegen, sollten nochmals überdacht werden. Genauso sollten weitere Möglichkeiten, wie das Zwischenspeichern oft wiederkehrender Inhalte, z.B. In der Session, nicht vergessen werden.
Als zusätzlichen Gewinn einer laufenden Webseite sollten Administratoren aber dem ByteCode-Cache einen Probelauf spendieren.

Jan hat 152 Beiträge geschrieben

Eine Antwort schreiben

Ihre E-Mail-Adresse wird nicht veröffentlicht. Benötigte Felder sind markiert mit *

You may use these HTML tags and attributes: <a href=""> <blockquote cite=""> <pre lang=""> <b> <strong> <i> <em>