JSF hat nicht gerade den Ruf ein besonders performantes Web-Framework zu sein – einerseits ist die Technologie vergleichsweise neu und hat zudem einen höheren Abstraktionsgrad als beispielsweise Struts. Zuverlässige und aussagekräftige Benchmarks sind aber leider noch Mangelware. Ein Ansatz ist in der aktuellen Ausgabe 10.2007 des Java-Magazin zu finden. Hier findet sich ein Artikel zur Performanz von JSF, in dem Sun’s Referenzimplementierung, Apache MyFaces und Struts miteinander verglichenwerden.

Am Beispiel “Tabellen-Rendering” bestätigen die Autoren den schlechten Ruf der JSF Performance. Je nach Komplexität der Tabelle werden 1000 Tabellenzeilen 3-4 mal langsamer durch die JSF Implementierungen gerendert als durch Struts. Bei einer gepagten, 10-zeiligen Tabelle ist es sogar Faktor 8. Während der Geschwindigkeitsvergleich der beiden JSF Kontrahenten Sun’s RI und MyFaces kaum Unterschiede offenlegt, zeigt sich beim Speicherverbrauch ein anderes Bild: hier ist MyFaces wesentlich genügsamer. Eine direkte Vergleichbarkeit ist aber nur bedingt gegeben. Denn die getestete MyFaces Version 1.1.5 ist eine JSF 1.1 Implementierung, während die Sun RI bereits JSF 1.2 implementiert.

Der Artikel lässt noch einige interessante Fragen für zukünftige Messungen und Analysen offen. Interessant fände ich zum Beispiel:

  • Wie performt MyFaces 1.2 im Vergleich zu seinem Vorgänger bzw. zur Sun RI?
  • Ist JSF mit Facelets schneller als mit JSPs?
  • In wieweit besteht eine Abhängigkeit zum dargestellten Inhalt (z.B. Formulare im Vergleich zu einfache Texte)?
  • Was sind Vergleichswerte für typische Webseiten?
  • Wie verhalten sich weitere Komponenten-Bibliotheken?
  • Wie viele Clients kann ein System bei vorgegebener Antwortzeit bedienen?
  • An welchen Stellen geht die Geschwindigkeit verloren?
  • Wo besteht Optimierungspotential?

Siehe auch: Die JSF Landschaft im Überblick

Hinterlasse einen Kommentar