Gość (37.30.*.*)
Frustracja wynikająca z nagłego „zamrożenia” przeglądarki, gdy w tle mamy otwarte zaledwie trzy karty, a menedżer zadań pokazuje mnóstwo wolnej pamięci RAM, jest doskonale znana niemal każdemu użytkownikowi sieci. Choć mogłoby się wydawać, że to błąd konkretnego programisty, problem jest znacznie głębszy i wynika z samej architektury współczesnych przeglądarek oraz sposobu, w jaki dzisiejszy internet jest budowany. Za te rozwiązania odpowiadają gigantyczne zespoły inżynierów z firm takich jak Google (Chrome), Apple (Safari), Microsoft (Edge) czy Mozilla (Firefox).
Większość dzisiejszych przeglądarek (z wyjątkiem Firefoxa i Safari) opiera się na silniku Chromium, rozwijanym głównie przez Google. To tam zapadają kluczowe decyzje o tym, jak przeglądarka zarządza zasobami. Inżynierowie oprogramowania starają się balansować między wydajnością, bezpieczeństwem a oszczędnością energii. Problem polega na tym, że współczesna przeglądarka to już nie tylko program do wyświetlania tekstu i obrazków – to potężne środowisko operacyjne, które uruchamia skomplikowane aplikacje webowe.
Kiedy przeglądarka „zacina się” mimo niskiego zużycia RAM-u, zazwyczaj nie jest to wina braku pamięci, lecz konfliktów na poziomie procesora (CPU), karty graficznej (GPU) lub specyficznych mechanizmów oszczędzania energii, które mają nam rzekomo pomagać.
Pamięć RAM to tylko jeden z elementów układanki. Jeśli Twoja przeglądarka regularnie zawiesza się na kilka sekund, winowajców może być kilku, a ich projekty są wynikiem kompromisów, które nie zawsze działają idealnie w każdej konfiguracji sprzętowej.
Projektanci wprowadzili akcelerację sprzętową, aby odciążyć procesor i przerzucić renderowanie grafiki na kartę graficzną (GPU). To świetne rozwiązanie, dopóki sterowniki karty graficznej współpracują idealnie z silnikiem przeglądarki. Jeśli dochodzi do błędu w komunikacji, przeglądarka „zamarza”, czekając na odpowiedź od GPU. To właśnie ten moment, w którym obraz staje w miejscu, a po chwili wszystko wraca do normy.
Dzisiejsze strony internetowe są przeładowane skryptami śledzącymi, reklamami i animacjami. Nawet jeśli masz otwarte tylko dwie karty, jedna z nich może uruchamiać w tle procesy, które na ułamek sekundy blokują główny wątek przeglądarki. Projektanci starają się izolować karty (tzw. sandboxing), aby jedna zawieszona strona nie zamykała całego programu, ale synchronizacja między tymi procesami wciąż może powodować krótkie przestoje.
To funkcja, którą ostatnio promują twórcy Edge’a i Chrome’a. Aby oszczędzać RAM i baterię, przeglądarka „zamraża” nieaktywne karty. Gdy na nie klikasz, muszą one zostać błyskawicznie „wybudzone”. Jeśli system w tym samym czasie wykonuje inną operację (np. aktualizację w tle), dochodzi do irytującego zacięcia. Projektanci uznali, że dłuższy czas pracy na baterii jest ważniejszy niż idealna płynność przy przełączaniu kart.
Często winą za zawieszanie obarczamy twórców przeglądarki, podczas gdy prawdziwym problemem są zainstalowane rozszerzenia. Adblockery, wtyczki do zarządzania hasłami czy VPN-y wstrzykują własny kod do każdej odwiedzanej strony. Jeśli rozszerzenie jest źle zoptymalizowane, może powodować mikro-zacięcia przy każdym ładowaniu nowego elementu strony. Projektanci przeglądarek dają nam wolność instalowania dodatków, ale nie mają pełnej kontroli nad ich jakością.
Mało kto wie, że przeglądarki oparte na Chromium mają swój własny, wewnętrzny menedżer zadań. Możesz go wywołać skrótem Shift + Esc. Zobaczysz tam dokładnie, która karta lub które rozszerzenie w danym momencie obciąża procesor. Często okazuje się, że to nie sama przeglądarka jest problemem, lecz jedna konkretna witryna z wadliwym skryptem reklamowym.
Czy wiesz, że każda karta w nowoczesnej przeglądarce działa jako osobny proces w systemie operacyjnym? Zostało to zaprojektowane ze względów bezpieczeństwa. Dzięki temu, jeśli haker przejmie kontrolę nad jedną kartą poprzez lukę w kodzie strony, nie ma on automatycznego dostępu do danych w innych kartach (np. do Twojego banku). Ta izolacja (sandboxing) kosztuje jednak sporo zasobów i jest jednym z powodów, dla których przeglądarki są tak „ciężkie” w porównaniu do programów sprzed dekady.
Podsumowując, za irytujące zawieszanie odpowiadają zespoły inżynierskie dążące do maksymalnego bezpieczeństwa i energooszczędności, często kosztem stabilności na starszych lub specyficznych konfiguracjach sprzętowych. Rozwiązaniem często bywa wyłączenie akceleracji sprzętowej w ustawieniach lub zrobienie porządku w zainstalowanych rozszerzeniach.