So debuggen Sie die CPU-Auslastung von Firefox

So debuggen Sie die CPU-Auslastung von Firefox

Ich suche Rat, wo ich nach möglichen Ursachen für die folgende Situation suchen kann:

Die CPU-Auslastung meines Lieblings-JavaScript-Browserspiels (https://grepolis.com) ist im Leerlauf zu hoch. Wenn keine Eingabe erfolgt, ist buchstäblich keine Animation sichtbar (nur einige Zahlen, die sich alle paar Sekunden ändern).

Die integrierten Webentwicklertools (Umschalt-F5) zeigen eine Sequenz von requestAnimationFrameund Recalculate Stylean, die einmal pro Frame (60 fps) wiederholt wird. Beide Aufrufe zeigen in den meisten Fällen eine CPU-Auslastung von jeweils weniger als 0,1 ms. Das sind etwa zehn Millisekunden pro Sekunde oder 1 % CPU-Auslastung. Es gibt länger als eine Minute keine Netzwerkaktivität.

Aber die tatsächliche CPU-Auslastung, die im Task-Manager oder im Prozess-Explorer sichtbar ist, beträgt etwa 75 % eines CPU-Kerns (44 Sekunden zusätzliche CPU-Zeit in einer Minute). Es ist kein Plugin-Container geladen – die Aktivität findet im Hauptprozess von Firefox statt (kein Flash oder anderes Plugin). Laut Prozess-Explorer hat der aktive Thread eine Startadresse, firefox.exe!GetHandleVerifierfür die beim Googeln keine Erklärung gefunden wurde. Die im Prozess-Explorer für diesen Thread angezeigten Aufrufstapel sehen jedes Mal sehr unterschiedlich aus, sodass ich keine Ähnlichkeiten erkannt habe.

Beim Wechsel zu einem anderen Browser-Tab und Minimieren des Firefox-Fensters reduziert sich die CPU-Auslastung auf 14 % eines CPU-Kerns (8 Sekunden CPU-Zeit pro Minute). Daher bin ich davon überzeugt, dass die CPU-Auslastung durch den mehrere Megabyte großen JavaScript-Code des Spiels verursacht wird, der viel zu groß zum Lesen ist.

Wie kann ich die Grundursache für meine CPU-Auslastung herausfinden, d. h. die Komponente finden, die für die CPU-Auslastung verantwortlich ist?

Das Problem ist unabhängig von der Browserversion (seit Jahren das gleiche Verhalten) und verschlimmert sich mit der Laufzeit. Ein Neuladen der Seite entspannt die Situation, löst sie aber nicht (CPU-Auslastung immer noch hoch, obwohl die Anwendung im Leerlauf ist). Es ist genügend Speicher verfügbar und ich verwende die 64-Bit-Version, konnte aber keinen Unterschied zur 32-Bit-Version feststellen. Win 7 Professional. Andere Betriebssysteme oder Browser habe ich nicht überprüft.

Dieses Spiel ist die einzige Website, bei der die CPU-Auslastung für mich unklar ist: Alle anderen Websites, die ich verwende, verbrauchen CPU nur, wenn sie aktiv sind.

verwandte Informationen