Jak zmniejszyć zużycie procesora przez Google Chrome?

50

Zacząłem używać Google Chrome (na bieżąco) w systemie Windows 7 (wszystko na bieżąco) w czystej instalacji Zrobiłem to kilka dni temu i w porównaniu do Firefoksa widzę ogromne skoki procesora (do 100% wykorzystania procesora) podczas otwierania puste karty. Próbowałem wyłączyć funkcje, takie jak przewidywanie sieci itp., Bezskutecznie.

Czy istnieje sposób na zmniejszenie zużycia procesora przez Chrome?

Oto jedna dziwna rzecz, którą zauważyłem, która mi przeszkadza: kiedy odtwarzam wideo / audio z YouTube'a (zarówno w wersji flash, jak i HTML5), kiedy klikam przycisk plus na górze, aby otworzyć kilka nowych okien, powoduje to wideo / dźwięk opóźniony. Podczas korzystania z Firefoksa nie doświadczam niczego podobnego. Najbardziej dziwne jest to, że tak się nie dzieje, gdy otwieram nowe strony w innym profilu Chrome lub podczas prywatnego przeglądania. Jakiś pomysł dlaczego tak się dzieje? Czy te strony nie powinny być przechowywane w osobnych procesach? Dlaczego różnica między otwarciem ich w innym profilu i w tym samym profilu?

Jane Johnson
źródło
2
Jakieś wtyczki zainstalowane w Chrome?
Dave
7
Shift + ESC => Menedżer zadań dla Chrome
ta.speot.is

Odpowiedzi:

48

Najpierw sprawdź, czy witryna nie używa rozszerzeń ani wtyczek, czy też niektórych pracowników działających w tle (aby otworzyć Menedżera zadań Chrome, naciśnij klawisze Shift + Esc lub Menu → Więcej narzędzi → Menedżer zadań).

Jeśli nie, sądzę, że jest to związane z przyspieszeniem sprzętowym. Ale zauważ, że nie widziałem tej przyczyny od lat, zdecydowanie nie od czasu Windows 8.

Najpierw wyłącz przyspieszenie sprzętowe u dołu strony ustawień głównych (kliknij Pokaż ustawienia zaawansowane ... u dołu chrome://settings, przewiń do końca, odznacz opcję Użyj przyspieszenia sprzętowego, jeśli jest dostępne ). Najnowsze wersje Chrome proszą o ponowne uruchomienie, ale z mojego doświadczenia wynika, że ​​ta opcja jest stosowana natychmiast, przynajmniej częściowo.

Jeśli spowolnienia nie zniknęły nawet po ponownym uruchomieniu Chrome, otwórz chrome://flags(umieść to w pasku adresu Chrome i naciśnij Enter) i skonfiguruj:

  • Wyłącz przyspieszone płótno 2D - Wyłącz
  • Rasteryzacja GPU - Wyłącz
  • Sprzętowe dekodowanie wideo - Wyłącz
  • Rasterizer z zerowym kopiowaniem - Wyłącz

(dotyczy to Chrome 53.0.2785.89, inne opcje mogą być dostępne na starszych systemach, w których Chrome się nie aktualizuje, na przykład:

  • Wyłącz DirectWrite - Włącz
  • Włącz rasteryzator z jedną kopią - wyłączony
  • Włącz rasteryzator z zerowym kopiowaniem - Wyłącz
  • Wyłącz sprzętowe dekodowanie wideo - Włącz

)

następnie kliknij Uruchom ponownie teraz w dolnej części okna.

Jeśli wszystko pójdzie dobrze (ale może nieco wolniej), możesz przełączać opcje z powrotem do domyślnych jeden po drugim, aż znajdziesz jedną, która powoduje problemy.

(jeśli nie znajdziesz opcji na liście flag, pomiń ją. Może także poszukaj innych opcji dotyczących GPU i przyspieszenia sprzętowego i upewnij się, że przyspieszenie sprzętowe i użycie GPU są wyłączone. Chrome dość często pobiera aktualizacje, a flagi są dodawane i usuwane w prawie każdej wersji).

Odpowiedzi na pytania:

Czy istnieje sposób na zmniejszenie zużycia procesora przez Chrome?

jeśli te szczyty spowodowane przez natywny silnik chrome (na przykład JavaScript lub parser HTML), to nie. Ale najprawdopodobniej są to rozszerzenia lub błędne sterowniki wideo (ich funkcje są używane do przyspieszania sprzętowego).

kiedy klikam przycisk plus u góry, aby otworzyć kilka nowych okien, powoduje to opóźnienie wideo / audio. <…> Masz pojęcie, dlaczego tak się dzieje?

tylko domysły. Może to powodować rozszerzenie lub wtyczka, lub dodanie kolejnej warstwy do złożonego okna powoduje opóźnienie wideo (kompozytowe - okno z kilkoma warstwami, a niektóre z nich renderowane sprzętowo, na przykład sprzętowym dekodowaniem wideo). Właśnie dlatego zasugerowałem wyłączenie akceleracji sprzętowej i sprawdzenie.

Czy te strony nie powinny być przechowywane w osobnych procesach?

są one rzeczywiście przechowywane, ale istnieje jeden główny proces (na profil), który wysyła informacje do okna. Jeśli z jakiegoś powodu proces ten zostanie zatrzymany, aktualizacje okien zostaną zatrzymane i będzie wyglądać, jakby Chrome nie odpowiadał. Wydaje mi się, że dźwięk generowany jest również przez ten główny proces, dlatego dźwięk również się opóźnia.

Możesz sprawdzić drzewo procesów za pomocą Process Explorera .

Dlaczego różnica między otwarciem ich w innym profilu i w tym samym profilu?

Rozszerzenia i ustawienia wtyczek są przypisane do poszczególnych profili, a rozszerzenia są domyślnie wyłączone w trybie incognito. Dlatego może zachowywać się inaczej z różnymi profilami (nawet z jednym procesem chromowania głównego).

LogicDaemon
źródło
1
Miałem ten sam problem. Po odpowiedzi LogicDaemon przeszedłem do chrome: // flags i zacząłem włączać i wyłączać wartości pojedynczo. Włączenie „Wyłącz DirectWrite” wydaje się rozwiązać problem.
2
Po włączeniu przyspieszenia sprzętowego użycie procesora spadło. Na razie w porządku. Dzięki.
Mukesh Chapagain,
@MukeshChapagain masz na myśli, że przyspieszenie sprzętowe było dla Ciebie domyślnie wyłączone? W rzeczywistości akceleracja sprzętowa służy właśnie do zmniejszenia obciążenia procesora i jest domyślnie WŁĄCZONA; ale czasami robi to odwrotnie z powodu wadliwych sterowników wideo.
LogicDaemon,
Myślę, że wcześniej go wyłączyłem, ale nie pamiętam dlaczego.
Mukesh Chapagain
Wiem, że OP zapytał o Windows. Czy ktoś wie, czy te same flagi są dostępne w Ubuntu 14.04 dla Chrome 47? Widzę tylko Disable accelerated 2D canvas, i Enable zero-copy rasterizer, ale nie Disable DirectWrite. Co ciekawe, Disable hardware-accelerated video decodeistnieje, ale mówi: „Przepraszamy, ten eksperyment nie jest dostępny na Twojej platformie”. Dlaczego więc nie widzę tego o DirectWrite? Być może został usunięty w ciągu ostatnich 2 lat?
Tyler Collier
2

Zresetuj Google Chrome:

  1. Kliknij menu Chrome na pasku narzędzi, a następnie kliknij „Ustawienia”.

  2. Wybierz „Pokaż ustawienia zaawansowane” u dołu strony, a następnie kliknij „Zresetuj ustawienia przeglądarki”.

  3. Kliknij „Resetuj”, aby przywrócić domyślną konfigurację przeglądarki.

tayyab islam
źródło
1

Sztuczka, której nauczyłem się z kilku stron:

  • Użyj –-purge-memory-buttonw wierszu polecenia Chrome i kliknij Purge memoryw menedżerze zadań Chrome, a to zwolni pamięć (jeśli to możliwe)

Oczywiście, po prostu wyłącz rozszerzenia, a to również pozwoli ci zaoszczędzić pamięć.

Ponadto niektóre witryny wspominały o FooTab , rozszerzeniu, które wstrzymuje wszystkie inne karty po uruchomieniu aż do załadowania.

boxspah
źródło
0

Otwórz, chrome://flagswyszukaj delegated rendereri sprawdź, czy możesz włączyć flagę, aby włączyć mechanizm renderowania delegowanego, czyli Übercompositor. Musisz także mieć pewność, że masz włączone przyspieszone renderowanie, ponieważ zależy to od GPU. Możesz to sprawdzić na chrome://gpuadresie URL.

Powoduje to, że proces renderowania pomija etap komponowania i wysyła polecenia rysowania wysokiego poziomu do procesu przeglądarki, łącząc go z własną przepustką komponowania. Zmniejsza to zapełnienie GPU i jest świetnym sposobem na zmniejszenie zużycia energii.

HarvesterX
źródło
3
delegated rendererjest flagą Androida - plakat wyraźnie stwierdza, że ​​on / ona jest na Windowsie.
por