Proces na witrynę: cała historia w jednym zdaniu
Chromium dzieli przeglądarkę na wiele procesów systemowych: rendery dla kart, po jednym na witrynę (izolacja witryn wkłada różne strony w różne procesy nawet wewnątrz jednej karty), proces GPU, usługę sieciową, usługę magazynu i po jednym procesie na każde wczytane rozszerzenie. Chodzi o ograniczanie szkód — wywalony renderer zabiera jedną kartę, nie całą przeglądarkę, a przejęty renderer nie ma bezpośredniego dostępu do innych witryn. Ceną jest to, że każdy proces niesie własny narzut środowiska, więc dwadzieścia otwartych witryn to dwadzieścia małych instancji Chromium, każda ze swoim udziałem bibliotek, stert JIT i buforów renderowania.
Suma rośnie szybciej, niż ludzie oczekują, bo ta liczba to nie tylko karty:
- Jeden proces renderujący na witrynę — dziesięć witryn w dziesięciu kartach plus te iframowane z innych domen
- Każde włączone rozszerzenie prowadzi własny proces w tle, nawet gdy nic nie robi
- Proces GPU trzyma zdekodowane obrazy, kafle i klatki wideo — karta z YouTube w 4K to w większości on
- Service workery żyją po zamknięciu swojej karty i trzymają aplikacje offline w gotowości
- Wstępnie ładowane strony z podpowiedzi omniboxa i prerendering zajmują pamięc, zanim w ogóle wejdziesz na stronę
Dlaczego Chrome nie oddaje pamięci
Druga przyczyna to alokator Chromium, PartitionAlloc, który buforuje zwolnione strony wewnątrz każdego procesu do natychmiastowego ponownego użycia, zamiast zwracać je Windowsowi. Menedżer zadań pokazuje tę pulę jako część śladu Chrome, choć technicznie jest wolna — dlatego liczba wygląda straszniej, niż jest realny nacisk na system. Przeglądarka oddaje pamięć pod prawdziwą presją — dlatego Chrome „wstaje z kolan” po zamknięciu ciężkiej aplikacji — ale na bezczynnej maszynie celowo trzyma to, za co zapłaciła.
Część trzymanej pamięci to uczciwe cache'owanie: bufor back/forward trzyma wyrenderowane strony, żeby przycisk Wstecz działał natychmiast, a odwzorowania cache'u dysku oszczędzają ponowne czytanie plików. Dlatego przeglądarka działająca od dni wygląda ciężziej niż świeżo uruchomiona — po prostu zcache'owała więcej rzeczy wartych zatrzymania. To argument „nieużywana pamięć to zmarnowana pamięć” i raz jest technicznie prawdziwy — alternatywą jest renderowanie od nowa każdej odwiedzanej strony.
Co realnie zmniejsza ślad
Włącz Memory Saver pod chrome://settings/performance: usypia nieaktywne karty i uwalnia ich rendery — to zdecydowanie największa dźwignia przy sesji z wieloma kartami. Potem zbadaj prawdziwych winowajców: naciśnij Shift+Esc, otwórz własny menedżer zadań Chrome i posortuj po pamięci — w większości przypadków jedna ciężka witryna (webowe IDE, rozmowa wideo, spuchnięty webmail) albo jedno rozszerzenie waży więcej niż czterdzieści zwykłych kart. Rozszerzenia traktuj ze szczególnym podejrzeniem: każde dokłada proces do każdego okna, a wiele działa bez przerwy.
Po tym uczciwa odpowiedź brzmi: arytmetyka, nie magia — mniej uśpionych kart, mniej rozszerzeń, żadnych na stałe przypiętych kokpitów, których nikt nie czyta. Przełączenie akceleracji sprzętowej wymienia pamięć GPU na obciążenie CPU — czasem korzystnie na słabym układzie zintegrowanym, czasem odwrotnie. Co nie działa: „oczyszczacze RAM-u” z siłowym przycinaniem zestawów roboczych — liczba spada, a przeglądarka się jąka, kiedy ponownie pobiera to, co obcięto.
Pytania i odpowiedzi
Dlaczego Chrome zużywa tyle RAM-u?
Bo dla bezpieczeństwa i izolacji awarii uruchamia osobny proces na każdą witrynę, a jego alokator trzyma zwolnioną pamięć wewnątrz tych procesów do natychmiastowego użycia. Liczba w Menedżerze zadań obejmuje pamięć, którą Chrome technicznie trzyma w rezerwie.
Jak sprawić, żeby Chrome zużywał mniej RAM-u?
Włącz Memory Saver w chrome://settings/performance, usuń nieużywane rozszerzenia i sprawdź przez Shift+Esc, która witryna lub rozszerzenie realnie zjada pamięć. Mniej otwartych kart bije każdą poprawkę.
Sprawdź warunki przed zakupem
Porównaj czas licencji i liczbę urządzeń. Każdy płatny plan odblokowuje ten sam zestaw narzędzi PRO.
Przeczytaj także
Napisz do nas: [email protected]