Ein Blick auf Google Chrome

Der Google-Browser macht allenthalben Furore – meist wird aber nur die Oberfläche angesprochen. Wir haben auch die Technik unter der Haube etwas näher angeschaut.

Artikel erschienen in Swiss IT Magazine 2008/17

     

Kaum eine Softwareankündigung hat in letzter Zeit derart viel Aufsehen erregt wie die Betaversion von Chrome. Vom Fernsehen bis zur Gratiszeitung haben sämtliche Medien die Botschaft verkündet, Google habe einen eigenen Browser lanciert. Die Berichterstattung beschränkte sich dabei meist auf die hohe Geschwindigkeit und die spartanische Oberfläche. Die technischen Aspekte wurden nur am Rand erwähnt. Dennoch finden sich die interessantesten Neuerungen von Chrome unter der Haube.


Programmkern und Rendering

Chrome nutzt für die HTML- und CSS-Darstellung die von Apple auf Basis von KDE HTML entwickelte und quelloffen veröffentlichte Rendering-Engine Webkit. Sie ist vom Apple-Browser Safari her bekannt und gilt wie die Gecko-Engine von Mozilla als schnell und standardkonform, was sich anhand der Acid-Tests des W3C nachweisen lässt: Während die aktuelle IE8-Beta von Microsoft im Acid-3-Test auf 17 von 100 Punkten kommt, punktet Firefox 3 immerhin mit 70 Zählern. Safari 3 und Chrome liegen mit 73 beziehungsweise 74 Punkten an der Spitze.
Die Rendering-Engine macht aber noch nicht den ganzen Browser aus: Der Kern des Programms kümmert sich um die Verwaltung von Tabs und Fenstern und um die Integration mit dem Betriebssystem. Google hat hier einen bisher nicht nur bei Browsern unbekannten Ansatz gewählt: Beim Anlegen eines neuen Tab wird jeweils ein separater, von den bisherigen Tabs völlig unabhängiger Prozess gestartet – in der aktuell einzig verfügbaren Windows-Version läuft also für jedes Tab eine eigene Instanz von chrome.exe, was sich mit dem Windows-Taskmanager leicht überprüfen lässt. Es geht sogar noch weiter: Auch Plug-ins wie den Flash-Player oder Silverlight lässt Chrome in einem eigenen Prozess laufen, was zusätzliche Betriebssicherheit gibt. Chrome ist damit weit und breit das einzige Programm, das im gleichen Fenster den Output mehrerer Prozesse darstellt. Der Vorteil: Von einem Crash oder von Verzögerungen beim Laden oder Verarbeiten bei einer der aufgerufenen Websites sind die anderen Tabs nicht betroffen.


Sparsamkeit beim Memory

Das Verfahren macht zudem Schluss mit fragmentiertem Arbeitsspeicher: Andere Browser bringen sämtliche Tabs in einem mit der Zeit wachsenden Speicher-Pool unter. Beim Schliessen eines Tab wird dessen Speicher zwar freigegeben, aber so entsteht nicht immer ein genügend grosser Bereich für das nächste Tab, und der gesamte Speicherbedarf steigt trotzdem weiter, wenn ein neuer Tab angelegt wird. Wenn dagegen ein Chrome-Tab geschlossen wird, endet der ganze Prozess. Der frei werdende Speicher wird jetzt durch das Betriebssystem und nicht mehr durch den Browser verwaltet, kann also auch anderen Anwendungen zugutekommen.
Das Gleiche gilt übrigens, wenn in einem bestehenden Tab eine neue URL aufgerufen wird – auch dann beendet Chrome den vorherigen Prozess und startet eine neue Instanz.


Auf Webapps getrimmt

Mit der Entwicklung von Chrome, dies betonen viele Kommentatoren, wolle Google eine stark verbesserte Plattform für Webapplikationen wie die hauseigenen Google Apps schaffen und sich so die Vorherrschaft in diesem Bereich sichern. Webapplikationen mit brauchbarer Oberfläche sind auf Javascript angewiesen. Dementsprechend hat Google seinen Browser mit einer besonders leistungsfähigen Javascript-Engine ausgestattet. Sie nennt sich V8 und wurde von einem dänischen Team entwickelt, das von Google übernommen wurde und früher bei Sun für die Entwicklung der Smalltalk-Implementation Strongtalk und einer virtuellen Maschine für die nie veröffentlichte Sprache Self zuständig war.
Zumindest im Moment ist V8 tatsächlich am schnellsten: Einen Testlauf mit dem Sunspider-Leistungsvergleichstool, das ausschliesslich die Javascript-Verarbeitung und nicht etwa auch noch das HTML/CSS-Rendering oder DOM-Manipulationen berücksichtigt, bewältigt die Chrome-Beta unter Windows Vista SP1 klar schneller als die aktuellen Browser Safari 3.1 (Engine: Javascriptcore), Opera 9.5.2 (Futhark) und Firefox 3.0.1 (Spidermonkey). Auch die Squirrelfish-Engine des kommenden Safari 4 kommt nicht an V8 heran. Weit abgeschlagen liegt Internet Explorer 7, der für den Test mehr als das Zehnfache der Zeit benötigt; die IE8-Beta ist mehrfach schneller, bietet aber immer noch weniger Speed als die Konkurrenz. Die von Firefox ab Version 3.1 benutzte Engine Tracemonkey wurde im Vergleich noch nicht berücksichtigt.
V8 erreicht den Speed-Vorteil durch einen optimierten Compiler, der wie andere gängige Just-in-Time-Compiler jedes Javascript-Objekt beim ersten Antreffen in nativen Maschinencode übersetzt, darüber hinaus aber auch jedesmal eine neue, entsprechend angepasste Klasse kompiliert, wenn das Objekt später im Programmcode durch zusätzliche Members erweitert wird. Dank diesem «Hidden-Class»-Verfahren stehen immer alle möglichen Varianten vorkompiliert zur Verfügung.
Webanwendungen können bei Chrome aber nicht erst nach dem Aufstarten des Browsers und der Eingabe ihrer URL betrieben werden: Läuft in einem Tab eine Webapplikation, speichert Chrome auf Wunsch einen Shortcut auf dem Desktop. Das nächste Mal lässt sich die Applikation dann in einem eigenen Fenster starten, das nicht mit den Chrome-Bedienungselementen aufwartet. Technisch geschieht beim Doppelklick auf einen solchen Shortcut nichts Spektakuläres – es wird einfach eine Chrome-Instanz mit dem zusätzlichen Command-Line-Parameter «app» aufgerufen. Im Fall von Google Mail könnte der Befehl zum Beispiel so aussehen:



chrome.exe --app=http://mail.google.com/mail

(ubi)


Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Welche Farbe hatte Rotkäppchens Kappe?
GOLD SPONSOREN
SPONSOREN & PARTNER