Drupal ist sehr mächtig und sehr schnell hat man zig Module installiert und man fragt sich, warum die Seite soooo langsam ist. Mit wenig Klicks lässt sich die Performance massiv verbessern.
Unter Admin -> Leistungen:
- Cache auf normal
- Block Cache einschalten
- CSS optimieren -> ja
- JS optimieren -> ja
Das wird die Leistung schon mal massiv erhöhen und sollte auch keine ungewünschten Nebeneffekte haben.
Falls es noch besser sein muss: Devel Modul einschalten und dort mal die Queries anzeigen lassen: "Collect Query info" und "Display Query log" auf ok. Jetzt wird unterhalb der Seite ein riesiger Log mit allen SQL Queries angezeigt… die Liste kann ganz schön lang werden.
Als ich auf meiner Seite angefangen habe, hatte ich 800 Queries. Der Blockcache brachte es auf ca. 600 runter (irgend ein i18n Modul, was da so viel brauchte). Es wird jeweils die Zeit angezeigt, um den Query auszuführen und wie oft dieser ausgeführt wird. Falls hier eine Zahl rot ist, sollte man sich Gedanken machen… Ich hatte einen Query, welcher immer wieder aufgerufen worden ist und sah auch die Funktion dafür: taxonomy_node_get_terms_by_vocabulary(). Die Funktion wurde insgesamt etwa 100x aufgerufen -> da ist doch etwas faul. Doch wie findet man heraus, wo die Funktion aufgerufen wurde.
Ich habe dann diesen Schnippsel in die fragwürdige Funktion reinkopiert. Drupal spuckte mir dann aus, wo diese Funktion augerufen wird. Super 🙂 … Übeltäter wurde sehr schnell gefunden. Es im hook_preprocess() -> noch ein überbleibsel aus Entwicklungszeit…
Die Seite läuft jetzt auf jeden Fall merklich schneller.