Aufmacher

Herbert Braun

Surf-Triathlon

Geschwindigkeit und Speicherverbrauch aktueller Browser

Kein neuer Browser erscheint, ohne dass seine Macher die verbesserte Performance betonen, und die Hardware wird sowieso immer schneller. Gleichzeitig wachsen aber die Ansprüche: Immer mehr müssen die Surfmaschinen können, immer anspruchsvoller sind die darzustellenden Seiten und Online-Anwendungen.

Als Testkandidaten treten die aktuellen Windows-Versionen der vier großen Browser an: Internet Explorer 7, Firefox 3, Opera 9.52 und Safari 3.1. Da Firefox 3 angeblich in Sachen Speicherverbrauch und Geschwindigkeit erheblich verbessert sein soll, hält der oft als speicherhungrig verschriene und noch häufig eingesetzte Firefox 2 als Vergleichsmaßstab her.

Von zwei Browsern gibt es Vorabveröffentlichungen der nächsten Version: Internet Explorer 8 und Safari 4. Leistungsmessungen mit unfertiger Software stehen natürlich unter Vorbehalt – vor allem bei Safari 4, der als frühe „Developer Preview“ vorliegt. Vom IE 8 erschien gerade noch rechtzeitig die zweite Beta (siehe Seite 64), die Feature-komplett sein soll. Größere Neuheiten haben unter der Haube beide Vorabversionen zu bieten: Safari 4 eine neue JavaScript-Maschine, IE 8 eine komplett umgebaute Rendering-Engine.

Alle sieben Browser laufen auf einem sonst jungfräulichen Windows Vista Business Service-Pack 1, damit die Browser sich nicht wechselseitig ausbremsen können (das könnte allenfalls der vorinstallierte Internet Explorer). Jegliche Plug-ins und Erweiterungen fehlen. Um deren Effekt besser einschätzen zu können, gesellt sich als achter Proband ein gut ausstaffierter Firefox 3 dazu, der mit Adobe Flash, einer Java-Laufzeitumgebung und einem Dutzend von Mozilla empfohlenen Erweiterungen bestückt wurde (Sage too, FireGestures, AdBlock Plus, StumbleUpon, Greasemonkey, IE Tab, PicLens, DownThemAll!, Foxmarks, All-in-One Sidebar, ScribeFire und Better Gmail 2).

Der Testrechner dürfte dem ähneln, was viele Anwender unter dem Schreibtisch stehen haben: In der Maschine stecken ein mit 2,4 GHz getakteter Athlon 64 X2 Dual Core 4600+, 2 GByte RAM und eine Radeon X1600 als Grafikkarte, also ein ganz gewöhnliches Büro-Arbeitstier. Das Vista-System läuft mit den Standardeinstellungen; alle visuellen Effekte sind angeschaltet, das Asus-M2NE-Board und die 250-GByte-Festplatte (eine Seagate Barracuda) tauschen Daten per SATA aus.

Die Browser wurden frisch installiert, liefen im Vollbildmodus und ohne eine andere geöffnete Anwendung; an der Vorkonfiguration wurde nur die Startseite geändert, die bei den Testinstallationen auf eine leere Seite verweist. Jedem neuen Test ging eine Cache- und History-Leerung sowie ein Browser-Neustart voran.

Die Performance eines Browsers erweist sich vor allem an der Zeit, die er für das Laden und Darstellen von Webseiten braucht. Die Programme mussten sich an einer Reihe von realen Seiten beweisen, und zwar unter verschiedenen Bandbreiten.

Die Leistung der Skript-Engine, die für komplexe Webseiten von zentraler Bedeutung ist, lässt sich mit Hilfe von JavaScript-Testsuiten unter Laborbedingungen messen. Ergänzende Tests prüften die Geschwindigkeit beim Vor- und Zurückblättern, die Zeit für das teilweise Laden einer Seite und den Verbrauch an Speicher- und CPU-Ressourcen. Und schließlich sollten die Browser auch noch in möglichst kurzer Zeit starten.

Kavalierstart

Wie lange die Anwendungen für den Start benötigten, haben wir notgedrungen handgestoppt. Gemessen wurde die Zeit vom Icon-Klick bis zum Aufbau des Browserfensters mit leerer Startseite. Hier wie bei den anderen Tests haben wir dreimal gemessen und einen Mittelwert gebildet.

Kaum ein Browser benötigte länger als eine Sekunde für den Start; bemerkenswerterweise schienen die Vorabversionen von IE 8 und Safari 4 am schnellsten zu sein, auch wenn bei handgestoppten Zeiten unter einer Sekunde keine verbindlichen Aussagen möglich sind. Dabei konnte Internet Explorer 7 keinen Vorteil aus seiner privilegierten Stellung als Bestandteil des Betriebssystems ziehen.

Am längsten ließen die drei Firefox-Versionen auf sich warten, immerhin reagierte Firefox 3 einen Tick flinker als sein Vorgänger. Die Installation von Plug-ins wirkte sich wie erwartet auf die Startzeit aus, wobei der Effekt – eine Steigerung von 1,2 auf 2,2 Sekunden – noch moderat ausfällt.

In der Praxis liegen die Startzeiten meist deutlich höher als bei dem eher schnellen, unausgelasteten Testsystem. Auf einem zum Vergleich herangezogenen 2-GHz-Arbeitsrechner ergaben sich bei Firefox mit Erweiterungen Wartezeiten um die acht Sekunden, während Internet Explorer und Safari nur etwa halb so lange benötigten. Bei Opera kann der Einsatz des integrierten Mail-Clients die Startzeit erheblich verlängern.

Mit dem Test ließ sich nicht erfassen, ob die Anwendungen im Hintergrund noch Komponenten nachluden, während sie dem Benutzer bereits Einsatzbereitschaft signalisierten. Schwankungen der Ergebnisse gehen nicht nur auf Messfehler zurück, sondern möglicherweise auch auf die Vista-Funktion SuperFetch. Diese hält häufig benötigte Daten im Arbeitsspeicher vor, was auf Kosten von Rechnerressourcen den Start von Programmen beschleunigt.

JavaScript-Parcours

Kaum eine größere Website kommt ohne JavaScript aus; das Kompilieren und Ausführen des Skriptcodes ist ein entscheidender Faktor bei der Geschwindigkeit des Seitenaufbaus. Für JavaScript-Berechnungen und Manipulationen des Dokuments gibt es eine ganze Reihe von Testsuiten, die in der Summe ein zuverlässiges Bild liefern sollten.

SunSpider 0.9, die vielleicht umfassendste davon, stammt von den WebKit-Entwicklern. Es handelt sich dabei um 26 Einzeltests. Nach Angaben der Autoren orientieren sich die Tests an den Anforderungen der wirklichen Welt.

SunSpider beschränkt sich auf den JavaScript-Kern ohne Eingriffe ins Dokument-Objekt-Modell (DOM) und berechnet unter anderem 3D-Figuren, Bit-Operationen, Verschlüsselungen, Kalender, String- und Regex-Manipulationen. Die Testsuite genießt hohes Ansehen, doch eine kleine Warnung darf nicht fehlen: SunSpider kommt aus dem gleichen Stall wie Safari, der vermutlich mit Hilfe der Testsuite optimiert wurde. SunSpider läuft automatisch fünfmal durch und gibt nur die Durchschnittsergebnisse aus.

Schon diese Testsuite beweist, dass sich die JavaScript-Leistungen auf recht unterschiedlichem Niveau bewegen: Der langsamste und der schnellste Kandidat lagen bei SunSpider um den Faktor neun auseinander. Schlusslicht ist IE 7, der den größten Teil seiner 38 Sekunden über den String-Methoden brütete. Der designierte Nachfolger beseitigt diese Schwäche und legt auch in allen anderen Disziplinen deutlich zu – allerdings braucht er immer noch beinahe doppelt so lange wie ein aktueller Firefox.

Mit seinen knapp fünfeinhalb Sekunden liegt der Fuchs sogar noch knapp vor Safari 3. Der Vergleich mit dem viermal so langsamen Firefox 2 zeigt, wie erfolgreich die Entwickler an der Performance-Optimierung arbeiten. Opera kann nicht ganz mit Firefox und Safari mithalten, fällt aber nicht weit ab. An die Spitze setzt sich auf Anhieb Safari 4 – die neue Script-Engine „SquirrelFish“ scheint tatsächlich die Wunderdinge zu leisten, die man ihr nachsagt.

Weitere Tests der JavaScript-Interna bestätigen dieses Bild – wenn auch mit Modifikationen. Bei der kleinen Testsuite von celtickane.com etwa, die vor allem die verschiedenen Objekte von Array bis Math untersucht, schiebt sich Opera zwischen Safari und Firefox 3; die beiden Internet Explorer liegen nur um den Faktor zwei bis drei hinter dem Hauptfeld und überholen immerhin noch Firefox 2. In der angeblich berichtigten Fassung dieses Tests von nontroppo.org dagegen fallen die IEs wieder weit zurück. Hier holt Opera beinahe Safari 4 ein.

Die Geschwindigkeit bei der Verarbeitung von Schleifen und Kollektionen von DOM-Knoten misst der Loop-Benchmark des Sun-Mitarbeiters Gregory Reimer. Die Tests versuchen offenbar eher, den effektivsten JavaScript-Programmierstil als den schnellsten Browser zu ermitteln, aber dem Wert der Ergebnisse tut das keinen Abbruch.

Bei den Tests mit normalen Arrays liefern sich Firefox 3 und die beiden Safari-Versionen ein Kopf-an-Kopf-Rennen. Seine Stärken spielt der Mozilla-Browser beim zerstreuten Array aus, das überwiegend aus leeren Einträgen besteht. Die Schleife über eine HTML-Kollektion sieht hingegen Safari klar vorne und Opera auf Augenhöhe mit Firefox. Insgesamt zeigt sich Firefox 2 weniger als halb so schnell wie sein Nachfolger, während Internet Explorer 7 der Spitze etwa um den Faktor zehn hinterherhinkt und mehrmals nachfragt, ob er die Testskripte wirklich ausführen soll.

Der Mesh-Transform-Test der WebKit-Entwickler ermittelt Firefox 2 als Nachzügler, während Firefox 3 noch knapp vor Safari 4 liegt.

Schnellzeichner

Beim Animieren eines 3D-Würfels (ein Test von Simon Speich) muss die Skript-Engine nicht nur viel rechnen, sondern die Ergebnisse auch ins Browserfenster zeichnen. Hier schließt Internet Explorer zu Firefox auf, die aber beide Safari und Opera nur noch von hinten sehen.

Ein Raytracer, ursprünglich auf safalra.com veröffentlicht, quält die Browser mit massiven DOM-Manipulationen – in der hohen Auflösung gilt es, in 120 Durchläufen 59 000 DIV-Container zu rendern. Hier hält der Marktführer nicht ganz mit Safari und Opera mit, überrundet aber den in dieser Disziplin desolaten Firefox. Sein exzellentes Ergebnis erarbeitete sich Safari 4 nicht ganz ordnungsgemäß, indem er scheinbar einfror und erst am Ende die fertig gerenderte Grafik anzeigte.

Beim erneuten Anstoßen des Raytracing-Tests bleibt diese DOM-Wüste im Speicher des Browsers, wenn die Testseite nicht neu geladen wurde. Um zusätzlich zu den regulären Test-Wiederholungen die Tortur auf die Spitze zu treiben, sollten die Browser in zwei Durchläufen diese extreme Belastung meistern. Hier kämpfte sich IE 7 sogar zu Opera und Safari nach vorne.

Mit den DOM-Tests von Ian Hickson, einem ehemaligen Mitarbeiter von Netscape und Opera, können die Microsoft-Browser mangels Standard-Kenntnissen dagegen wenig anfangen; bei den Manipulationen des Dokumentenbaums und dem Abspielen eines kleinen Filmchens aus Rasterpunkten mit vier verschiedenen Verfahren setzt sich Opera ab, auch wenn Safari bei den Core-DOM-Methoden schneller ist.

Peter-Paul Koch von quirksmode.org schließlich vergleicht fünf Methoden (drei nach W3C-DOM, zwei nach Microsofts innerHTML-Syntax), Text in ein Dokument zu schreiben. Hier tauschen Safari und Opera wieder die Plätze, während IE 7 sein indiskutables Ergebnis der Trägheit bei den W3C-DOM-Methoden verdankt. Allerdings liegen die flinkeren Browser auch bei den innerHTML-Methoden deutlich vorne. IE 8 kommt glücklicherweise erheblich besser mit W3C-DOM zurecht.

Vorderlader

Während die JavaScript-Benchmarks präzise Ergebnisse liefern, begibt man sich bei der Messung der Lade- und Rendergeschwindigkeit auf dünnes Eis. Das übliche Verfahren ist es, ein onload-Ereignis in JavaScript zu setzen, das nach dem Laden der Seite ausgelöst wird – also etwa so:

<script type="text/javascript">
 var anfang = new Date();
 function laden() {
  var ende = new