Performance von Drupal verbessern


Drupal ist manchmal ein bisschen langsam. Mir wird das immer wieder bewusst, wenn ich an einen von meinen statischen Seiten arbeite. Da macht es einfach pop und dann ist die Seite da. Bei Drupal ist das ein bisschen anders. Wenn eine Seite geladen wird, laufen einige andere Prozesse im Hintergrund ab: Inhalt aus der Datenbank holen, hooks abfragen, Seite zusammenbauen, und dabei die benötigten CSS und Javascript Dateien laden. Hier ist auch bereits ein erster wunder Punkt.

Wenn eine Datei (css und js) geladen wird, dann muss der Browser jedes mal eine entsprechende Anfrage an den Server stellen, worauf der Server dem Browser die angefragte Datei zur Verfügung stellt. Wenn man 10 Javascript Dateien hat, kann das schon zu ein Verzögerungen führen, denn es geht nicht nur um die reine Downloadzeit, sondern eben auch noch um die Zeit für die eigentliche Anfrage.

Für CSS gibt es schon lange einen Aggregator, dieser ist Standardmässig dabei und kann unter "admin/settings/performance" konfiguriert werden (entweder an oder aus). Seit einigen Tagen gibt es auch einen Javascript Aggregator: Dieser fasst alle Javascript Dateien in eine Datei zusammen, wie das bei den CSS Dateien schon lange ging.

Einstieg:

Folgenden Code Schnippsel in der Datei page.tpl.php einfügen:

Dieser Schnippsel muss VOR dem Einfügen der Scripts kommen, also:

Jetzt einfach das Modul installieren und sodann erscheinen neue Optionen unter "admin/settings/performance" [Bild 1].

  • Aggregate Javascript: Alle .js Dateien werden zu einer Datei zusammengf
  • Optimize JavaScript files: Alle / / Kommentare werden entfernt.

Falls jemand am Entwickeln ist und Sachen mit Javascript macht, so würde ich empfehlen, diese Optionen zu deaktivieren (sowohl CSS Aggregator als auch Javascript Aggregator), da Fehler viel einfacher zu finden sind. Die Bugs von denen ich in meinem ersten Post bezüglich dem Javascript Aggregator berichtet habe, sind mittlerweile behoben, und es sollte stabil funktionieren.

Von der Performance her, ist es doch merklich spürbar:

  • 3.7 Sekunden Ladezeit mit Javascript Aggregator und CSS Aggregator
  • 4.3 Sekunden Ladezeit ohne Javascript Aggregator, aber mit CSS Aggregator
  •  6.5 Sekunden Ladezeit ohne Javascript Aggregator und CSS Aggregator

 Diese beiden Module sind einfache Wege, um die Performance zu verbessern, ohne sich in irgendwelche komplizierte Servergeschichten vertiefen zu müssen.