# 8. Maßnahmen zu Tuning und Performancesteigerung

Die Performance einer Webseite ist sehr entscheidend. Google bewertet diese, ebenso wie die Besucher. Langsame Webseiten haben hohe Absprungraten.

Klar das ist nicht so relevant wenn die Webseite die einzige ist die Daten beinhaltet. Dennoch kann eine schlecht optimierte Seite die Last der Server unnötig erhöhen und so für höhere Hardware-Kosten oder Ausfälle sorgen.

## 8.1. Caching

TYPO3 bietet ein enormes Potenzial durch Caching. So werden Einträge, wie Seiten, nur einmal generiert und danach aus dem Cache ausgeliefert.

### 8.1.1. Framework

Geregelt werden nahezu alle Caches über das Caching-Framework. Dieses ist hier dokumentiert: https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/CachingFramework/Index.html

Die aktuelle Konfiguration ist im Modul Configuration einsehbar.

- Scheduler Task. Dazu sollte der Scheduler per Cronjob aufgerufen werden. Alternativ kann dieser manuell aufgerufen werden. Hier auch `typo3cms` zeigen?!

### 8.1.2. Funktionalität / Caches leeren, Tags, PageTS

Am Beispiel der News erklären. Unterschiedliche Kategorien, Startseite, etc.

Dokumentation unter: https://docs.typo3.org/typo3cms/TSconfigReference/PageTsconfig/TCEmain/Index.html#clearcachecmd

### 8.1.3. Fallstricke

Es wird zu oft oder der falsche Cache geleert, bzw. zu selten.

## 8.2. Messung

Die Performance kann zunächst mit Hilfe des Admin Panels gemessen werden. Alternativ auf PHP Ebene durch xdebug.

### 8.2.1. Admin Panel

Im Bereich Info steht die gesamte Parsetime. Diese kann auch als HTML Kommentar in die Ausgabe geschrieben werden:

    $GLOBALS['TYPO3_CONF_VARS']['FE']['debug'] = true;

Auch sieht man diverse Parameter wie aktive Nutzergruppen, ob die Seite im Cache liegt und wie viele nicht cachebare Elemente dort liegen.

Im Bereich TypoScript kann man weitere Details zu den Zeiten erhalten, dazu am besten folgende Optionen aktivieren:

- Tree display
- Display all times
- Track content rendering
- Force TS Rendering

### 8.2.2. XDebug profiling / kachegrind