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.

Caching
-------

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

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?!

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

Fallstricke
"""""""""""

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

Messung
-------

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

Admin Panel
"""""""""""

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

.. code-block:: php

    $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

XDebug profiling / kachegrind
"""""""""""""""""""""""""""""

