- Timestamp:
- 09/07/10 21:10:11 (21 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/manuals/developer/manual/de/kapitel05-framework.asc
r4577 r4616 1147 1147 ==== Clansuite_Cache 1148 1148 1149 Die Klasse Clansuite_Cache ermöglicht den Zugriff auf die verschiedenen Cache-Adapter. 1149 Die Klasse Clansuite_Cache ermöglicht die Zwischenspeicherung von Daten im Rahmen eines Applikations-Caches. 1150 Eine Zwischenspeicherung bietet sich bei Daten an, die in ihrer Herstellung rechenintensiv sind oder sehr 1151 häufig verwendet werden. Durch das Vorhalten im System sind sie bei Bedarf schnell erneut abrufbar. Dazu kann 1152 auf verschiedene Cache-Adapter zurückgegriffen werden. Die unterschiedlichen Cache-Adapter dienen einerseits 1153 dazu unterschiedliche PHP-Extensions zu unterstützen, andererseits aber auch dazu die Art und den Ort des 1154 Zwischenspeichers genauer zu bestimmem. Als Ablageorte kommen der Hautpspeicher und Festplatte in Betracht. 1155 1156 .Überblick PHP Caching-Extensions 1157 Für PHP lassen sich inzwischen verschiedene Caching-Extensions finden. 1158 Anzuführend sind beispielsweise die Standardbibliotheken Alternative PHP Cache (APC) und WinCache, 1159 sowie eAccelerator, XCache, ionCube Loader (früher PHP Accelerator) und Zend Optimizer. 1160 Gemeinsam ist diesen Erweiterungen, dass sie in C implementiert sind und direkt an der ZendEngine ansetzen, 1161 um eine Leistungssteigerung zu bewirken. Die Leistungssteigerung bewirkt regelrechte Performcesprünge. 1162 Dabei sind Performcesprünge von 200% bis 500% durchaus mess- und beobachtbar. 1163 1164 Zudem bewirkt der Einsatz dieser Caches, dass sich die Load des Webservers deutlich spürbar mindert. 1165 Der leistungssteigernde Caching-Effekt lässt sich durch einfaches Aktivieren der Erweiterung herbeiführen. 1166 In wenigen Fällen sind umfangreiche Konfigurationsmaßnahmen nötig, zumeist bewirkt schon der Betrieb mit 1167 Standardeinstellungen einen deutlichen Performaceboost. 1168 In der Regel ergibt sich kein Grund dafür, auf eine solche Erweiterung zu verzichten. 1169 Dennoch ist bei vielen Webhoster dieses Feature deaktivert und erst auf Nachfrage verfügbar. 1170 1171 Das Gegenteil zu Caches, die als PHP-Extension eingebunden werden, sind die sogenannten Userland-Caches. 1172 Dabei handelt es sich um Caching-Verfahren die vom Nutzer selbst erstellt wurden und daher in PHP implementiert sind. 1173 Es lassen sich beispielsweise generierte Grafiken oder Rückgabewerte von Funktionsaufrufen zwischenspeichern. 1174 1175 Sowohl ZendGuard, als auch ionCube Loader bieten neben der Caching-Funktionalität auch die Möglichkeit, den 1176 Sourcecode in einer geschützen, verschlüsselten Form abzulegen. 1177 Bei einem quellcode-offenen Produkt wie Clansuite, steht der Einsatz dieser Techniken aber außer Frage. 1178 1179 .Überblick Caching-Mechanismen 1180 Grundsätzlich lassen sich mehrere Anknüpfungspunkte für Caching-Systeme in PHP finden. 1181 Zu den bekannteren Verfahren gehört das Opcode Caching. 1150 1182 1151 1183 .Was macht ein OpCode-Cache? 1152 Normalerweise wird bei jedem Aufruf eines Skriptes zuerst das Skript kompiliert (es wird aus der Skriptsprache 1153 in Maschinencode überführt) und dann ausgeführt. Das kostet Zeit und verbraucht wertvolle Rechenleistung. 1184 Normalerweise wird bei jedem Aufruf eines PHP-Skriptes zuerst das Skript kompiliert (d.h. es wird aus der 1185 Skriptsprache in Maschinencode überführt) und dann ausgeführt. Das kostet Zeit und verbraucht wertvolle 1186 Rechenleistung. Dieses Verhalten ist eine Eigenart der in PHP geschriebenen Webanwendungen. 1187 Webanwendungen auf Basis anderer Architekturen, beispielsweise Java implementierte, halten die Anwendung 1188 und auch komplexe Objektmodelle und Daten persistent verfügbar (siehe Java-EE-Server; Enterprise JavaBeans). 1189 1154 1190 Verwendet man hingegen einen OpCode Cache, so wird ein Skript zuerst kompiliert und danach kompiliert im 1155 Speicher (shared memory / RAM) gehalten. Jeder weitere Aufruf des Skripts wird danach aus dem Speicher 1156 bedient und spart Kompilierungszeit. 1191 Speicher (shared memory / RAM) gehalten. Dieser "PHP Zwischencode" wird zumeist heftig optimiert abgelegt. 1192 Jeder weitere Aufruf des Skripts wird danach aus dem Speicher bedient und spart Kompilierungszeit. Man kann 1193 Programmquellcode, aber auch die zur Laufzeit des Programms anfallenden Dateninhalte, zumeist Variablen, im 1194 Cache ablegen.Wenn Variablen vom Nutzer im Cache abgelegt werden, spricht man vom User-Cache. 1195 1196 Daneben gibt es weitere Caching-Mechanismen, beispielsweise das File Caching. 1197 Beim File Caching werden eine oder mehrere Dateien zusammengefasst und für einen schnelleren späteren Zugriff abgelegt. 1198 Des Weiteren gibt es das sogenannte "Resolve File Path Caching", hierbei kommt ein Mapping Verfahren zum Einsatz, bei dem 1199 für den relativen Dateipfade der jeweilige absolute Dateipfad abgelegt wird, so dass später eine erneute Pfadauflösung 1200 entfallen kann. Ein sogenannte "Session Handling Cache" legt die Sessiondaten, genau wie der User Cache, im Shared Memory ab. 1157 1201 1158 1202 Der optimale Wert für die Größe des Cache-Speichers hängt natürlich vom tatsächlich verfügbaren RAM ab. 1159 Wer zu hohe Cachewerte einstellt, zwingt den Server möglicherweise dazu, andere Sachen auszulagern. 1203 Wer zu hohe Cachewerte einstellt, zwingt den Server möglicherweise dazu, andere Sachen aus dem Speicher auszulagern. 1204 1205 Bevor in letzter Instanz auf die Leistungssteigerung durch einen vorkompilierenden Cache zurückgegriffen wird, 1206 sei allen Entwicklern geraten, zunächst die eigene Applikation und Datenbank auf den Prüfstand zu bringen, 1207 um Leistungsbremsen zu erkennen und zu beheben. 1160 1208 1161 1209 .Instanzierung … … 1164 1212 1165 1213 .Entwurfsmuster 1214 Als Entwurfsmuster kommt eine Fabrik zum Einsatz. 1215 Die Fabrik liefert lediglich den Cache-Adapter aus, den der Nutzer in der Konfiguration festgelegt hat. 1166 1216 1167 1217 ===== Die Cache-Adapter 1168 1218 1219 Die Cache-Adapter sind dabei einfache Wrapper, die lediglich den Zugriff auf die Methoden der Caching- 1220 Extensions abstrahieren und standadisieren. Die Unterstützung für ein neues Caching-System ist durch 1221 einfaches Hinzufügen eines entsprechenden Adapters problemlos möglich. 1222 1169 1223 ====== Cache: APC 1224 1225 Der Alternative PHP Cache (APC) ist ein Opcode Cache. Er cached und optimiert den PHP Quellcode und stellt ihn als 1226 "Zwischencode" bereit. 1227 1228 http://php.net/apc 1229 http://pecl.php.net/package/APC 1170 1230 1171 1231 ====== Cache: eAccelerator
Note: See TracChangeset
for help on using the changeset viewer.
