Mittwoch, 27. Mai 2009

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

Alte Jasmin-Technologie

Neue Jasmin-Technologie
Insgesamt: 31 Komponenten / 267.8 Kb

Neue Jasmin-Technologie

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.

Blog abonnieren

RSS 2.0 Feed

Suche

Kalender

Zurück Mai '09 Vorwärts
Mo Di Mi Do Fr Sa So
        2 3
4 5 6 7 8 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 28 29 30 31

Verwaltung des Blogs

Blogroll

Projects/Web

vCard

  • Nico Steiner
  • www.nicosteiner.de
  • Karlsruhe/Germany
  • Senior Frontend-Developer at 1&1