Leseprobe zu "Magento - Das Handbuch für Entwickler (eBook)"
"KAPITEL 8 Performance und Skalierbarkeit (S. 191-192)
8.0 Einführung
Kurze Ladezeiten werden als wichtiges Qualitätsmerkmal von Websites gesehen. So haben Benutzerexperimente bei Amazon und Google gezeigt, dass schon Verzögerungen im Bereich von 100 Millisekunden von Benutzern negativ wahrgenommen werden und so zu einem geringeren Umsatz führen (wenn Sie mehr darüber erfahren möchten, finden Sie unter http://glinden.blogspot.com/2006/11/marissa-mayer-at-web-20.html ausführlichere Informationen).
Es lohnt sich also eigentlich bei jedem Projekt, etwas Zeit in die Verbesserung der Performance zu investieren. Führende Magento-Shops schaffen einen kompletten Seitenaufbau in 1,5 bis 2 Sekunden. In diesem Kapitel werden Sie Rezepte kennenlernen, die Ihnen eine ähnliche Performance ermöglichen. In engem Zusammenhang mit der Performance steht die Skalierbarkeit – ein Shop ist performant, wenn er bei nur einem Zugriff schnell reagiert; er ist skalierbar, wenn diese Eigenschaft auch bei vielen gleichzeitigen Anfragen erhalten bleibt. Wie wir zeigen werden, lässt sich mit Magento ein höchst performanter Shop aufbauen, der Ladezeiten unter einer Sekunde bietet.
Die Skalierbarkeit lässt sich ebenfalls sehr weit steigern. Hinter beidem steckt ein einfaches Konzept: die gezielte Verwendung von Caching, also dem Zwischenspeichern von Inhalten zur wiederholten Ausgabe. In diesem Kapitel gehen wir zunächst auf etwas Hintergrundwissen ein. Die Performance von Webapplikationen im Allgemeinen ist schwer zu verstehen und hängt von vielen Faktoren ab. Überraschend ist, dass die Ausführungszeit der Applikation – die Zeit, in der Magento auf dem Server ausgeführt wird – in der Regel weniger als die Hälfte der gesamten Ladezeit des Benutzers ausmacht; die übrige Zeit wird benötigt, um statische Dateien zu laden, JavaScript zu interpretieren und die Seite zu rendern. Wie wir sehen werden, kann man durch vergleichsweise einfache Eingriffe hier viele easy wins erreichen.
Danach stellen wir Ihnen einige – ebenfalls kostenlose – Tools vor, mit deren Hilfe Sie die Skalierbarkeit und Performance eines Magento-Shops analysieren und so gezielte Verbesserungen vornehmen können. Mit Fiddler steht Ihnen ein sehr komfortables Tool zur Verfügung, das als Proxy zwischen Browser und Server verwendet wird. So kann exakt gemessen werden, welche Komponenten wann und mit welchem Zeitaufwand geladen werden. Magento hilft bei der Optimierung mit einem Code-Profiler, der die Ausführungszeiten von einzelnen Codeblöcken anzeigt, und einem Datenbank-Profiler, der die gleiche Information für Datenbankabfragen liefert.
Caching ist die wirkungsvollste Strategie, um die Performance von Magento zu verbessern. Gleichzeitig erhöht Caching die Skalierbarkeit, da pro Benutzer weniger Requests anfallen, seltener Datenbankabfragen gemacht usw. Magento selbst hat eine sehr effektive Caching-Infrastruktur, die unter anderem Ergebnisse von Datenbankabfragen und Blöcke speichern kann. Durch eine gute Verwendung von Block-Caching wird die Ausführungszeit von Magento oft mehr als halbiert, wenn ein Cache-Treffer vorliegt. Whole Page Caching geht noch einen Schritt weiter und liefert direkt eine ganze vorgespeicherte Seite zurück. "