TYPO3 eigene Extbase Erweiterung beschleunigen

veröffentlicht in Software Engineering am 19. Apr. 2012 Tags: , ,

In diesem Blogbeitrag sind wir ja auf die allgemeine Performanceoptimierung von TYPO3 schon eingegangen. Jetzt will ich mal noch ein paar Tipps geben, wie eine selbst entwickelte Extension beschleunigt werden kann, die auf Extbase aufbaut.

Als Vorwort sollte noch angemerkt werden, dass der normale TYPO3-Cache ausreicht, wenn man nur Content hat, der für alle Besucher gleich ist, also keine Daten an der Session oder an Rechten von FeUser hängen. Aber für aufwändigere Extensions muss man Action im Plug-In als ‘non-cacheable’ eintragen, was dafür sorgt, dass diese Seiten wieder sehr langsam sind.

Falls noch nicht geschehen, kann man den Extbase Cache ab TYPO3 4.6 noch in den Memcache verlegen, dies tut man indem:

$TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['extbase_reflection'] = array(
    'backend' =>; 't3lib_cache_backend_MemcachedBackend',
    'options' =>; array(
        'servers' =>; array('localhost:11211'),
  )
);
$TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['extbase_object'] = array(
    'backend' =>; 't3lib_cache_backend_MemcachedBackend',
    'options' =>; array(
        'servers' =>; array('localhost:11211'),
  )
);

in die localconf.php eingefügt wird.

Des Weiteren sollte man in seinen Models genau darauf achten, dass überall Lazy-Loading für die Relation aktiviert ist. Dies wird durch die Annotationen mit “@lazy” ergänzt. Dies sieht dann so aus:

 /**
  * Contact Informations
  * @lazy
  * @var Tx_Initos_Domain_Model_Contact
  */
  protected $contact;

Eine weitere Analyse der PHP Ausführung zeigt, dass die Anteile vom Code in der Regel so aufgeteilt sind:

  • 40% Extbase Framework
  • 20% eigene Extension
  • 40% Fluid Template

Dies zeigt, dass die falsche Verwendung von Extbase oder Fluid schnell auf die Performance durchschlagen. Da hilft es nur, geschickt Funktionalität im Controller abzufangen bzw. sich eigene ViewHelper zu definieren um komplexe Schachtelungen von mit und zu unterbinden. Hier kommt man nicht um eine Code-Analyse herum.

Ein weiterer wichtiger Baustein ist, die eigene Extension um einen eigenen Cache zu erweitern. Hierfür gibt es schon eine Anleitung im TYPO3 Wiki.

Wenn Sie mit der Performance von TYPO3 nicht zufrieden sind, analysieren wir für Sie gerne das Problem und beheben es. Nehmen Sie einfach mit uns Kontakt auf.

Anmerkung:
Bei der Performance-Analyse zeigt sich, dass vor allem der Persistence Layer von Extbase sehr langsam ist. Aber wie wir schon erfahren haben, soll in der nächsten Version von Extbase noch mehr Performance rausgeholt werden.

Über Markus Schneider

Als Analytiker und Informatiker ist Markus Schneider Experte für Shop- und ERP-Systeme. Dabei setzt er sein fundiertes Wissen insbesondere im Bereich der Open Source Software ein und kann verschiedene
Anwendungssysteme, z.B. Oxid eSales, OTRS, und Solr Suche, darin integrieren. Auch mit der Onlineshopsoftware Magento kennt sich Herr Schneider bestens aus. Zudem greift er auf gesammelte Erfahrungen unterschiedlicher Systeme wie Sage, SAP und speziell OpenERP zurück.

Kommentare deaktiviert

Kommentare sind gesperrt.