Home  PHP Projekte  PHPDoc  Forms  IT[X] Template  Userland Cache  Gtext  Menu 3  Columbo  PHP Schulung  Technik der Site  Büchertipps  Fotografie  Airbrush  Kontakt  Stuff 
|
Userland Cache
PEAR's Userland Cache
bietet Ihnen mit wenigen Handgriffen einen
kleinen Performance Boost, ohne daß aufwendige oder gar kostspielige
Änderungen am PHP Interpreter notwendig werden.
Das PEAR Cache Modul zeichnet sich durch eine besonders hohe Flexibilität aus.
Das Design erinnert an die PHPLib Session Abstraktion und erlaubt das Speichern
der Cache Daten in Containern beliebigen Typs. Bereits jetzt können Sie zwischen drei Container-
Typen wählen.
- Files
- PEAR DB Abstraktion
- PHPLib DB Abstraktion
Eine besonders schnelle Shared Memory Variante wurde bereits von Björn Schotte angekündigt,
dessen Messungen zeigen, daß Userland Caches fast die Geschwindigkeit des Zend Cache erreichen
können! Eine native MySQL Heap Tables Variante ist ebenfalls in Arbeit.
Ableitungen vom Datencache führen zu Caches für Funktionsaufrufe, Textausgaben und Grafikerzeugung.
Der Funktionscache kann, umsichtig eingesetzt, zeitkritische Teile ihrer Applikation
erheblich beschleunigen. Mit dem Output Cache lassen sich dank des PHP 4 Features des
Output Bufferings spielend ganze Seiten cachen, und der Grafikcache zeigt, wie man den Anfängerfehler
<img src="button.php?text=beschriftung"> vermeidet.
Fauler Zauber
Verschiedene Caches für den internen PHP 4 Compiler haben in letzter Zeit für viel Aufsehen gesorgt.
Die Produkte von Bware, APC oder Zend beschleunigen den Seitenzugriff, indem sie die Ergebnisse
des internen PHP 4 Compilers zwischenspeichern. Mit einem "Userland" Cache, einem in PHP geschriebenem
Skript, lassen sich jedoch ähnliche Erfolge erzielen. Wohlbekannt dürfte ein
Newsletter Artikel von Björn Schotte
sein, der das Verfahren beschreibt. Der eigentlich Trick besteht darin, mittels des PHP 4 Output Buffering
die Skriptausgabe zu speichern und in einer Datei abzulegen, bevor die Ergebnisse ausgegeben werden.
Bei einer erneuten Seitenanfrage wird der Inhalt der Datei ausgeliefert, sofern diese noch nicht
veraltet ist. Das zeitaufwendige Skript wird bei einem Cache Hit vorzeitig beendet.
Für eine festgelegte Zeitdauer wird aus der dynamischen Seite eine statische.
Was ist neu?
Obschon verschiedene Case studies und erste Anwendungen die Technik einsetzen, fehlten
bislang Bibliothekscodes, die den Einsatz von Cache Technologien vereinfachen. Nach intensiver Diskussion
auf der PEAR Mailingliste und im IRC Channel #php.de stand das benötigte Design fest. Gesucht
wurde ein Datencache, der beliebige Storage Container (File, DB, SHM) einsetzen kann und bei dem Ableitungen
vom Datencache Spezialfunktionalität zum Zwischenspeichern von ganzen Seiten oder Funktionsaufrufen bereitstellen.
Puretec Tuner
Mit dem Output Cache läßt sich leicht ein kleiner "Puretec Tuner" entwerfen, der als
case study auf einer der Seiten dieser Homepage eingesetzt wird.
http://www.ulf-wendel.de/technik/
zeigt in hellgrau am unteren linken Seitenrand ein paar Profiling Informationen (Werte nach Reload vergleichen).
Typische Werte sind:
0.328 s Bearbeitungszeit, 0.011 s IT[X], 0.016 s Menu 3
Cache hit. Real execution time: 0.0509 s
Die erste Zeile zeigt die Zeiten, die ohne Cache zur Erzeugung der Seite notwendig sind. Die zweite Zeile die
Zeiten, die sich bei einem Cache Treffer ergeben. Die Anwendung des PEAR Cache Moduls mit File
Storage Container ist denkbar einfach, wie ein Blick auf den Source zeigt:
http://www.redsys.de/php/show_source.php?file=tech
Der Harken
Natürlich hat die Sache einen Harken. Der gesamte Code ist noch sehr "frisch" und
weder intensiv getestet, noch sind bislang Tutorials verfügbar. Derzeit muß man sich
mit ein paar Demo Files begnügen:
Dank
Zu danken ist diversen Beitragenden, darunter: Christian Stocker, Vinai Kopp, Sebastian Bergmann, Sterling Hughes,
Björn Schotte, den PHPlib Session Gurus und alle die, die vergessen wurden...
< ^ >
|