Zwei Jahre alter Bug in Chrome reduziert Akkulaufzeit

Seit der Version 22 hat der Google-Browser Chrome unter Windows ein Problem, das nun von Google auch als Bug anerkannt wird: Das Programm weckt den Prozessor sehr oft auf, um schneller zu laufen. Das kann für kürzere Laufzeiten von Notebooks sorgen.

Chrome unter Windows gilt als schnell – und nun ist auch bekannt, warum das so ist. Der Browser weckt von sich aus den Prozessor viel häufiger auf, als das in Windows vorgesehen ist. Dies geht aus mehreren Berichten hervor, inzwischen hat Google dieses Verhalten seines Programms als Bug anerkannt. Zuerst berichtete Forbes über den folgenden Effekt: Sobald Chrome gestartet ist, wird systemweit ein Timer von Windows verstellt.

Diese „system clock tick rate“ ist standardmäßig auf 15,625 Millisekunden eingestellt. In diesen festen Intervallen wird der Prozessor aufgeweckt. Chrome stellt diesen Wert aber auf eine Millisekunde ein, die CPU wird also statt 64-mal pro Sekunde 1.000-mal aktiviert. Da es sich um eine generelle Einstellung für das gesamte Betriebssystem und die Anwendungen handelt, hilft es auch nicht, Chrome zu minimieren, der Timer bleibt bis zum Schließen des Browsers auf den hohen Wert gesetzt. Überprüfen kann man das mit dem Kommandozeilenprogramm Clockres von Microsoft.

Dass es sich nicht um einen Programmierfehler, sondern um ein gewünschtes Verhalten von Chrome handelt, geht ausdrücklich aus einem Blogeintrag vom Juni 2010 hervor. Chrome-Entwickler Mike Belshe, der auch einer der Erfinder von SPDY ist, beschreibt dort ausführlich, dass der Browser die Timer-Einstellung ändert. Bei Rechnern im Akkubetrieb war das den damaligen Angaben zufolge aber nicht vorgesehen, inzwischen scheint Chrome aber auch unter diesen Bedingungen die Timerauflösung zu verstellen.

Google bezeichnet Funktion als Bug

Bekannt ist das eigentlich schon seit September 2012, denn da gab es einen ersten Bugreport in der Chromium-Mailingliste. Aktuell war dabei die Version 22 von Chrome, mindestens seit zwei Jahren verhält sich der Browser also wie beschrieben. Auch die Release Notes des aktuellen Chrome 36 weisen nicht darauf hin, dass sich an dieser Funktion etwas geändert hat. Dennoch sieht Google dieses Verhalten nun offenbar als Problem an, denn ein Sprecher bezeichnete es in einer Mail an The Register als „Bug, an dem bereits gearbeitet wird“. Für die Entwicklerversionen von Chrome gibt es auch bereits einen Patch.

In der Beschreibung dieses Updates erklären die Entwickler klar, dass sich das Verändern des Timers auf die Akkulaufzeit auswirken kann. Die Umsetzung der Funktion sei aber „buggy“ gewesen: Statt den Timer immer auf 1.000 Millisekunden zu setzen, sollte das nur für „kurze“ Tasks erfolgen. Wenn aber auf eine solche Aufgabe unmittelbar keine weitere folgte, blieb der Timer auf dem hohen Wert. Der Patch soll das beheben. Wann die reparierte Funktion in die stabilen Versionen von Chrome eingebaut wird, ist noch nicht abzusehen.

(Quelle: GolemIT)