Performance

Die Performance beim Seitenaufbau hängt maßgeblich von 5 Faktoren ab:

  1. Wie schnell ist das TYPO3 System
  2. Wie schnell ist das Shop System
  3. Welche Inhalte kommen aus dem Cache
  4. Sind sprechende URLs aktiviert
  5. Ist ShopFusion auf der aktuellen Seite aktiviert

TYPO3 und die Shop System Performance

Bei jedem TYPO3-Seitenaufruf kontaktiert ShopFusion den Shop und holt die aktuellen Shop-Daten, um diese dann in das TYPO3 einzufügen.
Das bedeutet, die Antwortzeit des TYPO3s verlängert sich um die Ausführungszeit des Shops + die Zeit der Datenübertragung vom Shop zum TYPO3. Die Ausführungszeit, die ShopFusion dabei verbraucht, ist verhältnismäßig gering.

Sie sollten also schauen, wie Sie das Hosting der beiden Systeme optimieren können. In den TYPO3 bzw. Shop System Foren und Wikis, werden Sie zahlreiche Tuning Tipps finden.

Standardmäßg ist ShopFusion auf jeder TYPO3-Seite aktivert. D.h. ShopFusion kontaktiert bei jedem Seitenaufruf den Shop. Wenn Sie auf einer TYPO3 Seite keine Shop-Daten benötigen, dann deaktivieren Sie ShopFusion am besten über die Seiteneigenschaften. Damit Sie diese Einstellung nicht auf jeder Seite vornehmen müssen, können Sie diese auf Unterseiten vererben.
Bitte beachten Sie, dass falls Sie auf Shop-Daten über TypoScript zugreifen, diese Informationen nur dann aktualisiert werden, wenn ShopFusion auf der entsprechende Seite auch aktiviert ist.

Darüber hinaus lohnt sich auch ein Blick auf eine separate Caching Software (PHP Accelerator, Varnish, etc.) um die Performance durch Auslieferung von statischem HTML zu erhöhen. ShopFusion ist zu diesen Caching Mechanismen kompatibel, solange die Inhalte des Shops unkomprimiert an ShopFusion ausgeliefert werden.

ShopFusion Cache

Aktivieren Sie unbedingt den ShopFusion internen Cache in der Extensionkonfiguration. ShopFusion wird alle Cache-fähigen Inhalte (Bilder, JavaScript, CSS, etc.) nach dem ersten Aufruf, in dem konfigurierten Verzeichnis ablegen. Beim zweiten Aufruf erkennt ShopFusion, welche Dateien bereits im Cache liegen und weist den Browser an, die Daten ohne Umwege direkt aus dem Cache zu laden. Sobald eine Datei im Cache liegt, wird das Shop System nicht mehr kontaktiert, um an diese Datei zu kommen. Erst wenn der Cache Timeout greift, wird die Datei neu aus dem Shop bezogen.

Eine Ausnahme bilden jedoch CSS Dateien, denn sie können Referenzen auf Bilder enthalten. Ist dies der Fall, dann wird ShopFusion die CSS Datei frühstens beim dritten Aufruf aus dem Cache beziehen. ShopFusion legt nur solche CSS Dateien im Cache ab, die entweder keine Referenzen auf Bilder enthalten oder in denen alle Bilder bereits ge-cache-t wurden. Eine CSS Datei wird also nur dann in den Cache gelegt, wenn alle enthaltenen Referenzen bereits ge-cache-t sind.

Beispiel
Angenommen ShopFusion bezieht aus dem Shop System eine CSS Datei und stößt auf folgende Zeile darin:

.main-container { background:#fbfaf6 url(../images/bkg_main1.gif) 50% 0 no-repeat; }

Dann ändert ShopFusion diese Zeile in etwas wie bspw.:

.main-container { background:#fbfaf6 url(http://domain.tld/shop/skin/frontend/default/default/images/bkg_main1.gif) 50% 0 no-repeat; }

ShopFusion liefert die CSS Datei aus, legt aber weder das Bild noch die CSS Datei in den Cache.
Als nächstes verarbeitet der Webbrowser die CSS Datei, stößt auf das Bild und ruft es ab. ShopFusion merkt, dass der Webbrowser das Bild laden möchte und holt es aus dem Shop System, legt es dabei aber auch gleichzeitig in den Cache.

Wenn jetzt die CSS Datei das nächste Mal abgerufen wird, dann erkennt ShopFusion, dass sich das Bild bereits im Cache befindet und wird die selbe Zeile in etwa so verändern1):

.main-container { background:#fbfaf6 url(http://domain.tld/fileadmin/shop/cache/skin/frontend/default/default/images/bkg_main1.gif) 50% 0 no-repeat; }

Wenn alle Referenzen in der CSS Datei ge-cache-t sind, dann wird ShopFusion ebenfalls die CSS Datei in den Cache legen. Das bedeutet, solange nicht ge-cache-te Referenzen vorhanden sind, wird die CSS Datei nicht im Cache landen.

TIPP
Internet Browser laden idR. nur die Bilder, die auch tatsächlich benötigt werden. Es kann also passieren, dass einige CSS Dateien niemals automatisch im Cache landen, weil die referenzierten Grafiken nie abgerufen und ge-cache-t werden. Sie haben jetzt vier Möglichkeiten, um das Caching zu erzwingen:

  1. Sie rufen manuell alle Bildreferenzen aus den CSS Dateien auf.
  2. Sie entfernen alle überflüssigen Bildreferenzen aus den CSS Dateien im Shop Layout.
  3. Sie entfernen die gesamte CSS Datei aus dem Shop Layout.
  4. Sie kopieren die CSS Dateien in den ShopFusion Custom css Path und ändern die CSS Datei so ab, dass sie für Ihre zwecke optimal passt.

sprechende URLs

Aktivieren Sie, wenn möglich, sprechende URLs. De facto muss ShopFusion intern weniger berechnen, wenn sprechende URLs aktiviert sind.

1) Der genaue Pfad hängt von Ihrer ShopFusion Konfiguration ab.
Drucken/exportieren
QR-Code
QR-Code shopfusion:tipps_und_tricks:performance (erstellt für aktuelle Seite)