Internet Explorer 9 - Benchmark-Cheat oder Optimierung?

Im Internet sind Hinweise darauf aufgetaucht, dass der Internet Explorer 9 für den SunSpider-Benchmark optimiert ist.

Wie Digitizor berichtet, hat der Mozilla-Entwickler Rob Sayre bei seinen Tests von Firefox 4 den Browser auch mit den Konkurrenz-Produkten verglichen. Dabei entdeckte er, dass der Internet Explorer 9 bei einem Test des SunSpider-JavaScript-Benchmarks gleich zehn Mal schneller war als alle anderen.

Während Chrome und Opera rund 10 ms benötigten, erledigte der IE9 diese Aufgabe in nur 1 ms. Nachdem Sayre den Programmcode des Tests minimal veränderte und zwei Versionen erstellte, die jeweils einen zusätzlichen Befehl ohne wirkliche Funktion enthielten, änderte sich das Bild. Für diese Varianten benötigte der Internet Explorer 9 rund 20 ms, während sich das Ergebnis der anderen Browser nicht änderte. Auch Hacker News kommt zu dem Schluss, dass es sich dabei »ziemlich sicher um Cheaten« handelt, da dieser Effekt auch auf andere Weise erzielt werden kann.

Microsoft hat inzwischen dazu Stellung genommen und erklärt, dass der Internet Explorer funktionslose Codeschnipsel, sogenannten »dead code« erkennt und nicht ausführt. Der entsprechende Test im SunSpider-Benchmark enthalte eine mehrmals wiederholte Programmschleife mit einer Berechnung, deren Resultat aber nirgendwo verwendet würde, so dass diese Schleife in das Schema der »dead code«-Optimierung passt und nicht ausgeführt wird.

Die neue Preview-Version 7 des IE9 für Entwickler ist laut Microsoft im SunSpider-Benchmark nun der schnellste Browser überhaupt und enthält auch ganz offiziell Optimierungen für »reale Webseiten«, die mit Benchmarks nur wenig gemein hätten. Der Sinn eines Browsers sei es, Webseiten aufzurufen und nicht nur Benchmarks.

Update 20.11.2010

Laut dem Mozilla-Entwickler Rob Sayre ist die »dead code«-Eliminierung des Internet Explorer 9 mindestens »naiv«, aber auf keinen Fall als allgemeine Optimierung zu werten. So greift die Optimierung im SunSpider-Benchmark beispielsweise nicht, wenn in einer Berechnung statt »größer als« einfach »kleiner oder gleich« eingesetzt wird, auch wenn das Ergebnis wie zuvor nirgends verwendet wird.

Nach Ansicht von Sayre, der noch weitere Beispiele und Analysen in seinem Blog veröffentlicht hat, scheint die »dead code«-Optimierung von Microsoft nur mit dem SunSpider-Benchmark getestet worden zu sein.

Microsoft selbst rät nun von Micro-Benchmarks, die wie SunSpider jeweils nur einen Bereich oder eine Funktion des Browsers testen, ab. Das könne » möglicherweise auch zu einer ungesunden Form des Wettbewerbs führen, bei dem es nur noch darum geht, ein Produkt auf bessere Benchmarkergebnisse hin zu optimieren. Diesen Weg halten wir für falsch«, schreibt Daniel Melanchthon im deutschen Microsoft-Blog. Überschrift des Beitrages: »Geschwindigkeitsrekord mit IE9 im Sunspider-Benchmark«.

zu den Kommentaren (27)

Kommentare(27)
Kommentar-Regeln von GameStar
Bitte lies unsere Kommentar-Regeln, bevor Du einen Kommentar verfasst.

Nur angemeldete Benutzer können kommentieren und bewerten.