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.
Archive
- Februar 2012 (1)
- Oktober 2011 (1)
- August 2011 (2)
- April 2011 (1)
- Oktober 2010 (6)
- September 2010 (5)
- August 2010 (3)
- Juli 2010 (2)
- Juni 2010 (3)
- Mai 2010 (9)
- April 2010 (8)
- März 2010 (13)
- Februar 2010 (10)
- Januar 2010 (11)
- Dezember 2009 (8)
- November 2009 (6)
- Oktober 2009 (10)
- September 2009 (9)
- August 2009 (12)
- Juli 2009 (16)
- Das Neueste ...
- Älteres ...