Jasmin-Servlet Performance-Optimierungen
Wir arbeiten zur Zeit an der Integration einer neuen Jasmin-Servlet Version. Die damit verbundenen Neuerungen zielen auf eine massive Verbesserung der Website-Performance ab. Als Grundlage dienen die Yahoo! Performance Rules, welche ausführlich in einem Buch von Steve Souders erläutert werden.
Folgende neuen Features wurden dabei umgesetzt:
- Gzippen der Ressourcen
- Aufteilung auf zwei Requests pro Ressource, wobei ein Request die Ressourcen ausliefert, die für alle Seiten einheitlich konfiguriert sind und ein zweiter Request die variablen Ressorcen liefert, welche von Seite zu Seite unterschiedlich sind
- Verschieben der JavaScripte aus dem Head an das Ende des Dokuments
- Konfiguration von Pre- und Suffix-Modulen
Anhand erster Tests mit einem kleineren Projekt ist absehbar, dass die Performance durch diese Art von Maßnahmen tatsächlich deutlich verbessert werden kann. Anhand einer typischen Webseite im 1&1 DSL-Bestellprozess (DslModemsBox) kann man folgende Berechnungen anstellen.
Alte Jasmin-Technologie
Insgesamt: 30 Komponenten / 545.2 Kb
Neue Jasmin-Technologie
Insgesamt: 31 Komponenten / 267.8 Kb
Verbesserungen
Anhand dieser Zahlen sind folgende Verbesserungen zu erkennen.
- Die Größe der gesamten Seite verringert sich um die Hälfte
- Durch einen zweiten Request kann nahezu das gesamte CSS nach einem initialen Laden aus dem Cache geliefert werden (vorher u.U gar nicht)
- Durch einen zweiten Request können 2/3 des gesamten JavaScript nach einem initialen Laden aus dem Cache geliefert werden (vorher u.U. gar nicht)
- Das Laden des JavaScript wird nicht mehr das progressive Rendering
blockieren - Der Anteil der optimierten Ressourcen an der Gesamtgröße der Seite betrug
vor der Optimierung 63% - danach nur noch 26%
Warum solche Maßnahmen wichtig sind, kann man unter anderem in dem Artikel The Psychology of Web Performance und in dieser Studie nachlesen.