Przeglądarka się zawiesza przy uploadzie? Rozwiązania
Przeglądarka zawiesza się przy uploadzie? Rozwiąż problemy z pamięcią i niestabilnością sprawdzonymi krokami dla dużych transferów.
Jeśli przeglądarka zawiesza się w trakcie uploadu, przyczyną jest niemal zawsze presja pamięci na zakładkę. Chrome zabija zakładki przekraczające około 2–4 GB pamięci prywatnej, a usługa transferowa ładująca plik 10 GB do jednego obiektu Blob z łatwością przekroczy ten próg. Rozwiązanie: użyć usługi strumieniującej plik we fragmentach przez metodę slice() File API (większość nowoczesnych usług tak robi), zamknąć wszystkie inne zakładki przed uploadem, wyłączyć rozszerzenia wpinające się w fetch/XHR i przesyłać z komputera stacjonarnego zamiast z laptopa działającego na baterii. Firefox historycznie obsługuje duże strumienie File API z mniejszym zużyciem pamięci niż Chromium.
Dlaczego przeglądarki się zawieszają podczas uploadów
Dwie architektoniczne realia zderzają się ze sobą. Po pierwsze, każda zakładka przeglądarki to oddzielny proces z własnym limitem pamięci. Chrome ogranicza każdy proces renderera do około 4 GB na systemach 64-bitowych, po czym uruchamia się OOM killer. Po drugie, naiwny sposób przesyłania pliku w JavaScript polega na przekazaniu całego obiektu File do ciała fetch, co przeglądarki często próbują zbuforować w pamięci przed wysłaniem.
Dobrze zaprojektowana usługa transferowa nigdy tego nie robi. Odczytuje plik metodą File.slice(start, end), tworząc Blob dla każdego fragmentu 5–20 MB, wysyła ten fragment, a następnie go zwalnia. Zużycie pamięci pozostaje ograniczone do wartości rozmiarFragmentu × współbieżność niezależnie od rozmiaru pliku.
Jeśli upload przebiega dobrze do 500 MB postępu, a zakładka szarzeje przy 2 GB, usługa ładuje cały plik przed wysłaniem. Warto wybrać inną usługę lub inne podejście.
Agresywne zamykanie innych zakładek
Chrome współdzieli jeden proces renderera dla niektórych pogrupowanych zakładek. Druga zakładka odtwarzająca YouTube w 4K, trzecia z załadowanym Figma, czwarta z Notion pochłaniającym 800 MB RAM — to się sumuje. Upload 10 GB na laptopie z 8 GB RAM i 12 otwartymi zakładkami to przepis na awarię.
Przed dużym uploadem warto zamknąć Chrome całkowicie i uruchomić ponownie, otwierając tylko zakładkę usługi transferowej. Monitor aktywności (macOS) lub Menedżer zadań (Windows) powinien pokazywać, że przeglądarka używa wyraźnie poniżej 2 GB na tej jednej zakładce.
Wyłączenie rozszerzeń
Blokery reklam, rozszerzenia prywatności, menedżery haseł i analizatory sieci (uBlock Origin, Privacy Badger, LastPass, HTTP Toolkit) — wszystkie wstrzykują się w żądania sieciowe. Większość nie sprawia problemów. Niektóre — szczególnie te z nieaktualnym kodem — buforują ciała żądań, by je inspekcjonować. To niszczy strumieniowanie uploadów i wysadza pamięć.
Warto przetestować w oknie incognito (rozszerzenia są domyślnie wyłączone). Jeśli upload kończy się sukcesem w incognito, winowajcy są wśród rozszerzeń. Należy włączać je po jednym, by znaleźć problematyczne.
Wyłączenie akceleracji sprzętowej na słabych GPU
Starsze laptopy ze zintegrowanymi GPU Intel UHD 620 lub podobnymi czasami crashują przy jednoczesnym renderowaniu aktualizacji paska postępu i buforowaniu odczytu pliku. W Chrome: Ustawienia > System > „Użyj akceleracji sprzętowej, gdy jest dostępna" można wyłączyć. Traci się nieco płynności dla pozostałych elementów, ale upload stabilizuje się na systemach z ograniczoną pamięcią.
Podobnie warto wyłączyć tryb „Memory Saver" Chrome dla zakładki uploadu — tryb ten jest znany z eksmitowania zakładek pod presją pamięci w trakcie przesyłania. Należy przypiąć zakładkę lub jawnie ją wykluczyć.
Firefox dla bardzo dużych plików
Firefox historycznie obsługuje File API z ciaśniejszymi budżetami pamięci niż Chromium. Upload 10 GB, który konsekwentnie crashuje Chrome, Firefox często kończy bez problemów. Różnica nie jest ogromna przy dobrze zaprojektowanych usługach (obie przeglądarki obsługują poprawnie strumieniowanie we fragmentach), ale przy usługach z mniej optymalną implementacją oszczędny model pamięci Firefoksa jest bardziej wyrozumiały.
Safari na macOS jest też niezawodny przy dużych uploadach, z zastrzeżeniem, że iOS Safari agresywnie zamyka zakładki w tle.
Zakładka na pierwszym planie
Zakładki w tle są pierwsze do eksmisji pod presją pamięci. Upload powinien pozostać na pierwszym planie. Nie należy przełączać się do innego okna na 30 minut i wracać, żeby znaleźć odświeżoną zakładkę. „Odrzucone" zakładki Chrome pokazują szary placeholder po powrocie, a wszelki upload w toku jest skończony.
Na macOS warto użyć caffeinate -s lub wyłączyć tryb oszczędzania energii podczas uploadu. Uśpiony laptop zamyka połączenia WebSocket i XHR, a nie każda usługa potrafi je prawidłowo wznowić.
Upload z komputera podłączonego do zasilania
Laptopy na baterii agresywnie ograniczają CPU i RAM. „Low Power Mode" macOS i „Battery Saver" Windows obniżają priorytet zadań w tle, co dla zakładki przeglądarki wykonującej szyfrowanie AES i zapisy sieciowe oznacza zacięcia.
Należy podłączyć laptop do zasilania i wyłączyć tryby oszczędzania energii. Jeśli laptop umożliwia wybór profilu CPU (Dell Power Manager, Lenovo Vantage), warto ustawić „Wydajność" na czas transferu.
Restart przeglądarki przed startem
Chrome, Firefox i Edge powoli tracą pamięć przez długie sesje. Przeglądarka otwarta od dwóch dni z 40 otwartymi i zamkniętymi zakładkami może nieść ze sobą 2 GB pamięci-zombie zanim jeszcze otworzy się strona uploadu. Należy zamknąć przeglądarkę w pełni (Cmd+Q, a nie tylko zamknięcie okna na macOS; kliknięcie prawym na pasku zadań > Zakończ na Windows) i uruchomić ponownie.
Monitorowanie pamięci RAM podczas uploadu
W trakcie uploadu warto obserwować pamięć procesu przeglądarki. macOS Monitor aktywności: zakładka Pamięć, filtrowanie według nazwy przeglądarki. Menedżer zadań Windows: zakładka Szczegóły, sortowanie według „Pamięć (prywatny zestaw roboczy)".
Prawidłowy upload we fragmentach utrzymuje stały poziom kilkuset MB pamięci przeglądarki niezależnie od postępu. Jeśli pamięć rośnie liniowo wraz z postępem uploadu (osiągając 5 GB przy 50 procentach transferu 10 GB), usługa buforuje wszystko. To jest błąd — warto znaleźć inną usługę.
Usługi zaprojektowane pod duże uploady w przeglądarce
Dobrze zaprojektowana usługa transferowa używa fragmentowanych uploadów z pulą Web Workerów do szyfrowania, ograniczoną pamięcią i jawnym ponawianiem dla nieudanych fragmentów. HexaTransfer odczytuje pliki przez File.slice() w Web Workersach, szyfruje każdy fragment przez AES-256-GCM i nigdy nie przekracza kilkuset MB pamięci przeglądarki — niezależnie od tego, czy przesyłanych jest 50 MB czy pełne 10 GB — co ma znaczenie, gdy przeglądarka obsługuje jednocześnie wszystko inne w ciągu dnia pracy.
Wypróbuj na hexatransfer.com — bezpłatnie, bez konta, do 10 GB.
Wysyłaj duże pliki bezpiecznie z szyfrowaniem end-to-end
Przesyłaj pliki do 10 GB za darmo z szyfrowaniem end-to-end. Bez rejestracji. Twoje pliki są szyfrowane w przeglądarce przed przesłaniem — nikt inny nie może ich odczytać.
Wyślij plik