Die Leistung eine Browsers hängt von mehreren Faktoren ab. Um eine Website anzuzeigen und dem Benutzer eine Interaktion zu ermöglichen, müssen viele Subsysteme des Browsers zusammenarbeiten. Die Optimierung für einen einzelnen Benchmark, der nur eines dieser Subsysteme testet (etwas, was bei einigen Browsern der Fall ist), ist ein vollkommen unzureichender Ansatz für die umfassende Geschwindigkeitsoptimierung eines Browsers. In der folgenden Abbildung sehen Sie beispielsweise, wofür bei der Anzeige fünf verschiedener Nachrichtenseiten in Internet Explorer 8 wie viel Zeit benötigt wurde.

websitecomparison_version2

Jede der fünf Seiten hat in Bezug auf die Leistung eine ganz unterschiedliche Charakteristik. Einige Seiten benötigen viel Zeit für das Ausführen von JavaScript-Code, andere für das Marshaling und wieder andere für das Layout und das Rendering. Um einen Browser insgesamt schnell zu machen, muss man sich zunächst bewusst machen, wie echte Websites aufgebaut sind. Für Internet Explorer 9 haben wir daher die Entwicklungsmuster von über 7.000 echten Websites analysiert. Hierbei haben wir uns ganz besonders mit den 1.000 weltweit wichtigsten Websites befasst. Die entsprechenden Analysen deckten über 50 verschiedene Aspekte ab und ermöglichten uns so ein tiefgreifendes Verständnis der Strukturen der entsprechenden Websites. Die Analysen deckten verschiedenste Leistungscharakteristiken ab – beispielsweise den Zeitaufwand für die unterschiedlichen Subsysteme, den Einsatz von Entwicklungsframeworks wie jQuery und DOJO, den Einsatz von Analysen, die Anzahl der verwendeten Skript-Dateien, den Umfang des Quellcodes und die verwendeten Funktionen.

Mithilfe dieser tiefgreifenden Analysen waren wir in der Lage, häufig vorkommende Entwicklungsmuster zu ermitteln. Um ein bessere Verständnis der Muster zu entwickeln, die in zukünftigen Webanwendungen zu finden sein werden, haben wir uns zusätzlich HTML5-Anwendungen angesehen. Mit den gewonnenen Mustern waren wir in der Lage, alle Subsysteme von Internet Explorer 9 sorgfältig für die aktuellen und kommenden Websites entsprechend zu optimieren.

Die neue JavaScript-Engine Chakra

Laut unserer Windows Experience Index-Daten haben moderne PCs unter Windows Vista und Windows 7 im Schnitt CPUs mit 2,42 Kernen. Chakra wurde optimiert, um die Vorteile dieser Kerne zu nutzen, und kompiliert im Hintergrund JavaScript zu hocheffizientem Maschinencode, während im Vordergrund JavaScript interpretiert wird. Nach Abschluss der Kompilierung wechselt Chakra zum kompilierten und erheblich schnelleren Maschinencode, der für den jeweiligen PC optimiert ist. Dies führt dazu, dass Internet Explorer 9 bei populären JavaScript-Benchmarks wie Webkit-SunSpider hervorragende Werte erreicht.

page_21a_31a_SunSpider_Results page_21b_31b_SunSpider_without_IE8

Hardwarebeschleunigung für Grafiken

Viele sogenannte „moderne“ Browser nutzen in Bezug auf die Geschwindigkeit einen kleinsten gemeinsamen Nenner. Sie ignorieren den größten Teil der Möglichkeiten, die das Betriebssystem und die Hardware des PCs bieten. Internet Explorer 9 nutzt dagegen beides zur schnelleren Darstellung von Webseiten voll aus.

Wir nutzen beispielsweise zur der Darstellung von Text, Grafiken und neuen HTML5-Technologien wie Video-, SVG- und Canvas-Elementen die GPU (Graphics Processing Unit). Die Rechenleistung der GPUs ist in den letzten zehn Jahren exponentiell gewachsen. Moderne GPUs erreichen heute mehr als ein Teraflop (Floating Point Operations Per Second – Fließkommaberechnungen pro Sekunde) Rechenleistung. Im Vergleich mit modernen CPUs, die mit Mühe und Not 100 Gigaflops (0,1 Teraflop) erreichen, sehen Sie, wie viel ungenutzte Rechenleistung in moderner Hardware steckt.

page_22_49_fish_tank_full_demo

Internet Explorer 9 nutzt die Leistungsfähigkeit der GPU mithilfe der DirectX-, Direct2D- und DirectWrite-APIs und sorgt so dafür, dass Text, Grafiken und Animationen flüssig und scharf dargestellt werden und dass hochauflösende Videos umwerfend aussehen.

Marshalling

Wenn Entwickler bestimmte Bereiche einer Website verändern und so interaktiv gestalten möchten, dann nutzen sie JavaScript, um das Document Object Model (DOM) der Seite zu bearbeiten. In Internet Explorer 8 gibt es eine „Marshalling“-Schicht zwischen JavaScript und dem DOM. Ganz simpel gesagt arbeitet diese Marshalling-Schicht als Übersetzer zwischen JavaScript und DOM – denn diese beiden Elemente sprechen nicht dieselbe Sprache. Die „Übersetzung“ kann jedoch eine erhebliche Menge an Zeit in Anspruch nehmen. In Internet Explorer 9 ist unsere neue JavaScript-Engine Chakra nun ein nativer Teil des Browsers. Somit sprechen nun beide Elemente dieselbe „Sprache“, und es ist keine Übersetzung (Marshalling) mehr erforderlich – was zu einer erheblichen Leistungsverbesserung führt.

Neues Layout-System

Eine moderne Website beansprucht nicht nur den Prozessor, sondern benötigt auch eine erhebliche Menge an Arbeitsspeicher. In einigen Fällen sind zwischen zehn und mehreren hundert Megabyte erforderlich. Wenn die Benutzer mehrere Webseiten geöffnet halten, dann kann dies einen bedeutenden Teil des gesamten Arbeitsspeichers des PCs belegen. Internet Explorer 9 nutzt ein neues Layout-System, das für einen geringeren Arbeitsspeicherbedarf optimiert ist (besonders mit Blick auf HTML5-Websites, die noch mehr Anforderungen an den Browser stellen). Im Rahmen der Entwicklung haben wir bei großen und optisch komplexen Websites festgestellt, dass unsere neue Layout-Engine den erforderlichen Arbeitsspeicherbedarf in einigen Fällen um bis zu 50 Prozent reduziert.

Das neue Layout-System bildet außerdem die Basis für die grafisch umfangreichen HTML5-Anwendungen von morgen. Es stellt sicher, dass HTML5-Funktionalitäten wie SVG nicht nur schnell sind, sondern sich den Anforderungen der Entwickler anpassen.

Viele weitere Leistungsoptimierungen

Es gibt noch viele weitere Leistungsoptimierungen in Internet Explorer 9. Von den Verbesserungen in den Algorithmen für das Netzwerk-Caching (engl.) zur schnelleren Formatierung von Webseiten mit CSS bis hin zur größtmöglichen Geschwindigkeitsoptimierung der wichtigsten APIs wie document.getElementByID. Der zentrale Kern von Internet Explorer 9 wurde grundlegend mit Blick auf die Leistungsfähigkeit entworfen.

Was bringt unsere Leistungsverbesserung?

Die Resultate unserer Leistungsverbesserungen können Sie beim tagtäglichen Browsen sehen. Seiten laden und reagieren fast augenblicklich. Unter www.ietestdrive.com (engl.) finden Sie Beispiele für die nächste Welle von HTML5-Anwendungen mit umfangreichen und tiefgreifenden HTML5-Umgebungen in einem Browser, der von Grund auf für hohe Geschwindigkeiten entworfen wurde. Vergleichen Sie die Demo-Sites in Internet Explorer 9 und in anderen Browsern – dann erhalten Sie ein Gefühl dafür, was ein umfassend schneller Browser ist.