Die Reduzierung des Arbeitsspeicherbedarfs von Chrome gehört zu den obersten Prioritäten des Teams in diesem Jahr. Dank der Verbesserungen bei der automatischen Speicherbereinigung von V8 konnten wir bereits eine Reduzierung der Arbeitsspeichernutzung in Gmail um bis zu 45% verzeichnen, aber wir stehen erst am Anfang. Eines unserer nächsten Experimente zur Gedächtnisnutzung richtet sich an Es heißt Tab Verwerfen.
Das Verwerfen von Tabs ist als experimentelle Funktion in Chrome 46 und höher verfügbar.
Hintergrund
Der Renderer-Prozess benötigt für jeden geöffneten Tab in der Regel etwa 50 MB pro Tab, obwohl die meisten Nutzer jeweils nur einen Tab verwenden. Wenn Sie 10 Tabs geöffnet haben, werden mindestens 450 MB Arbeitsspeicher ausgegeben, nur um den Status des Tabs im Hintergrund beizubehalten. Dies kann mit der Zeit etwas unübersichtlich werden.
Eines unserer Ziele ist es, den Arbeitsspeicher auf Tabs zu reduzieren, die Sie nicht tatsächlich nutzen. Wenn ich mir im Chrome Task-Manager ansehe, welche Tabs meinen Systemspeicher verbrauchen, verwende ich eigentlich nur eine oder zwei der unten aufgeführten Websites, während die anderen Tabs im Hintergrund ungenutzt bleiben.
Das Verwerfen von Tabs kann dabei helfen, unsere Arbeitsspeichernutzung zu reduzieren.
Nicht verwendete Tabs verwerfen
Durch das Verwerfen von Tabs kann Chrome Tabs, die für Sie nicht von Interesse sind, automatisch verwerfen, wenn festgestellt wird, dass der Systemspeicher nur noch begrenzt verfügbar ist. Was verstehen wir unter Verwerfen? Verworfene Tabs brauchen Sie nirgendwohin. Wir löschen sie, aber sie ist immer noch in der Chrome-Tableiste sichtbar. Wenn Sie zu einem verworfenen Tab zurückkehren, wird dieser beim Anklicken neu geladen. Der Inhalt des Formulars, die Scrollposition usw. werden genauso gespeichert und wiederhergestellt, wie bei der Navigation auf dem Tab vorwärts oder rückwärts.
Außerdem gibt es eine weitere neue Funktion, mit der alle Tabressourcen lokal im Cache gespeichert werden können. Dies funktioniert gut, wenn Sie offline sind und Tabs verwerfen. Wenn der Tab wieder aktiviert ist, können Sie die im Cache gespeicherte Version, die zuvor über das Netzwerk geladen wurde, neu laden. Wenn Sie das Neuladen von Seiten aus dem Cache aktivieren möchten, können Sie unter chrome://flags/#show-saved-copy
einen weiteren Test durchführen.
Du kannst das Verwerfen von Tabs heute ausprobieren. Aktiviere dazu den Tab über chrome://flags/#enable-tab-discarding
und starte Chrome neu. Du kannst auf derselben chrome://flags
-Seite von Chrome festlegen, ob sie aktiviert oder deaktiviert sein soll.
Auf einer neuen Seite mit dem Namen chrome://discards
kannst du eine Liste der aktuell geöffneten Tabs aufrufen. Wir versuchen, dir einen Überblick darüber zu geben, wie interessant sie für dich sind – vom größten bis zum wenigsten.
Um die Funktion zu testen, können Sie entweder Ihr normales Browserverhalten so lange ausführen, bis sich Ihr System im Modus mit wenig Arbeitsspeicher befindet, oder alternativ einen Tab auslösen, der von about:discards verworfen wird, indem Sie auf "Tab jetzt verwerfen" klicken. Dadurch wird der letzte Tab in der Liste verworfen. Sie können auch einen bestimmten Tab aus der Liste verwerfen, indem Sie auf die entsprechende Schaltfläche „Verwerfen“ klicken. Ein verworfener Tab wird mit dem Präfix [Verworfen] angezeigt.
Durch das Verwerfen von Tabs werden Tabs in dieser Reihenfolge verworfen:
- Interne Seiten wie „Neuer Tab“-Seite oder Lesezeichen
- Vor langer Zeit ausgewählte Tabs
- Kürzlich ausgewählte Tabs
- Apps, die in einem Fenster ausgeführt werden
- Angepinnte Tabs
- Ausgewählter Tab
Wir haben den Test zum Verwerfen von Tabs in Chrome Canary für Windows und Mac OS aktiviert. Eine Linux-Implementierung ist demnächst verfügbar.
Inspiration: Hey, toller Hosenträger
Wenn Ihnen das Verwerfen von Tabs bekannt vorkommt, haben Sie wahrscheinlich nützliche Chrome-Erweiterungen kennengelernt, die Ihnen eine etwas einfachere Version dieser Idee bieten, z. B. The Great Suspender. The Great Suspender hat zum Ziel, den Speicher- und GPU-Aufwand von Chrome zu reduzieren, indem Tabs nach einer benutzerdefinierten Inaktivitätsphase gesperrt werden.
Ähnlich wie beim Verwerfen von Tabs können auch Tabs wieder aktiviert werden, wenn Sie wieder mit ihnen interagieren müssen. Great Hooker behält den Titel und das Favicon jedes Tabs bei und zeigt gesperrte Tabs abgeblendet an, sodass du jederzeit problemlos zu ihnen zurückkehren kannst.
Tabs im Hintergrund, die ich nicht aktiv verwende, wurden gesperrt, um Arbeitsspeicher zu sparen. Tabs, die ich noch aktiv verwende (GitHub und YouTube), laufen aber weiterhin wie gewohnt.
Wir hatten während der Entwicklung des Verwerfens von Tabs ein nettes Gespräch mit dem Autor der Erweiterung „Great Suspender“. Wir freuen uns, dass wir dieses Problem nativ auf eine Weise angehen, die effizienter sind, als dies mit einer Erweiterung möglich wäre, z. B. durch den Verlust des Nutzerstatus.
Zukünftige Verbesserungen: Tab-Serializer
Der Tab-Serializer ist eine zukünftige Arbeit, die unserer Meinung nach zu erheblichen Verbesserungen bei unserem aktuellen Ansatz zum Verwerfen von Tabs führen könnte. Dabei wird aus dem Inhalt eines Chrome-Tabs der *aktuelle* Status in ein binäres Blob serialisiert. Dieses binäre Blob kann später in einen Tab deserialisiert werden.
Der Serialisierer würde fast alles serialisieren, was Chrome, Blink und V8 benötigen, um einen Tab ordnungsgemäß beizubehalten (etwas, das mit Chrome-Erweiterungen bislang nicht ohne Weiteres möglich ist). Die Serialisierung würde die üblichen Verdächtigen umfassen: das DOM (mit vielen WebGL und Canvas), CSS und den Status der V8 JavaScript-VM.
Wenn Sie Android oder ChromeOS verwenden, wissen Sie vielleicht, dass wir, ähnlich wie bei dem in diesem Beitrag beschriebenen Test zum Verwerfen von Tabs, Tabs im Hintergrund offensiv schließen, um die Arbeitsspeichernutzung gering zu halten. Das Problem war, dass der Tab *alle* seinen Status verlieren würde.
Wenn du wieder Interesse an dem Tab gezeigt hast, müssten wir ihn neu laden und deine gesamte Interaktion damit geht verloren. Der Tab-Serializer geht dieses Problem einfach so an, dass Sie fast genau zu dem gelangen, was Sie waren, ohne zum Netzwerk zurückkehren zu müssen. Wir freuen uns darauf, zu einem späteren Zeitpunkt weitere Informationen über diese Arbeit zu veröffentlichen.
Teste das Verwerfen von Tabs und sag uns, was du davon hältst
Wir würden gerne erfahren, ob diese Funktion für Sie nützlich ist und wie wir sie verbessern können. Probiert es aus, experimentiert damit (besonders wenn ihr ständig Tabs sammelt!) und teilt uns eure Meinung in den Kommentaren mit. :) Wir würden uns auch freuen, wenn Sie Tickets für Programmfehler auf crbug.com einreichen.