Zend-Framework-Applikationen beschleunigen – diese Tipps sorgen für eine bessere Performance
Kommentare

Egal, welches Tool man für die Erstellung einer Applikation nutzt: die Seitenladezeit ist ein Faktor, der für die User Experience nicht außer Acht gelassen werden darf. Darum ist es wichtig, die Performance regelmäßig zu überprüfen und wenn nötig entsprechende Verbesserungen vorzunehmen.

Angus MacIsaac berichtet in einem Blogpost über die Erfahrungen, die er bei der Optimierung einer mit Zend Framework 2 erstellten Applikation gemacht hat und bietet einige Tipps, wie sich die Performance verbessern lässt.

Optimierung des Autoloadings und der Event Listeners

Der erste Schritt zur Überprüfung wie sich eine Applikation verhält, ist der Einsatz eines Profilers. Damit lassen sich mögliche Flaschenhälse, die die Performance bremsen, leichter aufspüren, ohne dass viel Zeit für womöglich unnötige Code-Optimierungen draufgeht. Angus MacIsaac nennt zudem einige Bereiche, auf die man sich bei der Performance-Optimierung in Zend-Framework-Applikationen konzentrieren sollte.

Dazu gehört zum Beispiel das Autoloading. Hier sorgt vor allem die ClassLoader-Klasse für langsame Ladezeiten – etwa weil der StandardAutoloader die Links zwischen Namespace und Pfadname für jede genutzte Klasse während der Runtime generiert. Abhilfe kann hier die Nutzung von ClassMapAutoLoader schaffen, um die Verbindung zwischen Namespace und Pfadname abzurufen.

Auch Event Listeners können für eine schwächelnde Performance von Zend-Framework-Applikationen sorgen. Gerade wenn der SharedEventManager für eine Vielzahl an Aufgaben genutzt wird – und zusätzlich vielleicht noch Dienste über den ServiceManager abgerufen werden – kommen Hunderte Aufrufe des ServiceManager in einem einzigen Request zusammen. Es kann darum helfen, den SharedEventManager aufzuräumen und nur Events zu triggern oder auf zu sie zu hören, wenn es absolut nötig ist.

Module.php-Datei aufräumen

In einer Zend-Framework-Applikation gehört die Module.php-Datei zu den wichtigsten Dateien – und ist oft ein Grund, warum die Performance schwächelt. In vielen Tutorials und Dokumentationen werden nämlich zahlreiche Elemente in die Module.php-Datei gepackt, die eigentlich besser in verschiedenen Factories aufgehoben werden, damit sie nicht bei jedem Request evaluiert werden.

Wer sich nicht mit jeder Konfigurationsdatei in Zend-Framework-Applikationen auskennt, übersieht zudem oft einen ziemlich offensichtlichen Trick für eine bessere Performance: nämlich die Modifizierung des Config-Cachings. Und auch wenn man Doctrine in der Applikation nutzt, stehen einige einfache Caching-Optionen zur Verfügung, die sich positiv auf die Performance auswirken.

Ebenso hilft session_write_close() dabei, die Ladezeit zu verbessern. Werden nämlich mehrere API-Aufrufe gleichzeitig ausgeführt, die Zugriff auf eine Session benötigen, blockieren sie sich gegenseitig, bis ihr Request vollständig abgeschlossen wurde. Wird jedoch session_write_close() aufgerufen, sobald ein API autorisiert wurde, erhalten die folgenden Aufrufe Zugriff auf die Session – und das ohne die Ladezeit zu bremsen.

Natürlich sind die genannten Tipps kein Allheilmittel bei Performance-Problemen in Zend-Framework-Applikationen, allerdings dürften sich hier bereits einige nützliche Ansätze finden, mit denen sich die Performance verbessern lässt.

Aufmacherbild: Over hundred miles per hour von Shutterstock / Urheberrecht: Jozef Sowa

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -