Yükleme sırasında tarayıcı çöküyor mu? Kararlı aktarım çözümleri
Yükleme sırasında tarayıcı çöküyor mu? Büyük aktarımlar için bellek sorunlarını ve kararsızlığı bu kanıtlanmış adımlarla düzeltin.
Tarayıcı yükleme sırasında çöküyorsa neredeyse her zaman sekme üzerinde bellek baskısıdır. Chrome, yaklaşık 2-4 GB'lık özel belleği aşan sekmeleri kapatır; 10 GB'lık dosyayı tek bir Blob nesnesine yükleyen bir aktarım hizmeti bu tavanı kolayca aşar. Düzeltme: File API'nin slice() yöntemini kullanarak dosyayı parçalar halinde akışa alan bir hizmet kullanın (modern olanların çoğu bunu yapar), yüklemeden önce diğer tüm sekmeleri kapatın, fetch/XHR'a bağlanan uzantıları devre dışı bırakın ve pil gücüyle değil prize takılı masaüstünden yükleyin. Firefox genellikle büyük File API akışlarını Chromium'a kıyasla daha az bellek yüküyle yönetir.
Tarayıcıların neden büyük yüklemelerde çöktüğü
İki mimari gerçeklik çarpışır. Birincisi, her tarayıcı sekmesi kendi bellek tavanına sahip ayrı bir işlemdir. Chrome, 64 bit sistemlerde bellek ayırıcı (OOM killer) devreye girmeden önce her işlemi yaklaşık 4 GB ile sınırlar. İkincisi, JavaScript'te bir dosyayı yüklemenin basit yolu, tüm File nesnesini bir fetch gövdesine geçirmektir; bu, tarayıcıların göndermeden önce belleğe arabelleğe almaya çalıştığı bir yaklaşımdır.
İyi tasarlanmış bir aktarım hizmeti bunu hiçbir zaman yapmaz. Her 5-20 MB'lık parça için bir Blob üretmek amacıyla File.slice(start, end) ile dosyayı okur, o parçayı yükler, ardından serbest bırakır. Dosya boyutundan bağımsız olarak bellek, yaklaşık parçaBoyutu * eşzamanlılık bayt ile sınırlı kalır.
Yüklemeniz 500 MB ilerlemenin ardından sorunsuz başlıyor ve 2 GB'da sekme griyor ise, hizmet göndermeden önce tüm dosyayı yüklüyor demektir. Farklı bir hizmet veya farklı bir yaklaşım seçin.
Diğer sekmeleri agresif biçimde kapatın
Chrome, bazı gruplandırılmış sekmeler için tek bir işlemi paylaşır (Site Yalıtımı bunu değiştirir ancak bellek baskısı sistem düzeyinde hâlâ paylaşılır). 4K'da YouTube oynayan ikinci sekme, Figma yüklü üçüncü sekme, her biri 800 MB RAM kullanan dördüncü bir Notion sekmesi — bunların tamamı birikir. 8 GB RAM'li bir dizüstü bilgisayarda 12 sekme açıkken 10 GB'lık yükleme riske girmek demektir.
Büyük yüklemeye başlamadan önce Chrome'u tamamen kapatın ve yalnızca aktarım hizmetinin sekmesini yeniden açın. Etkinlik Monitörü (macOS) veya Görev Yöneticisi (Windows), o tek sekmede tarayıcının 2 GB'ın çok altında gösterdiğini doğrulamalıdır.
Uzantıları devre dışı bırakın
Reklam engelleyiciler, gizlilik uzantıları, parola yöneticileri ve ağ analizörleri (uBlock Origin, Privacy Badger, LastPass, HTTP Toolkit) ağ isteklerine müdahale eder. Çoğu sorun çıkarmaz. Bazıları, özellikle güncel olmayan kodlu olanlar, istek gövdelerini incelemek için arabelleğe alır; bu da akışlı yüklemeleri bozar ve belleği patlatır.
Gizli pencerede test edin (uzantılar varsayılan olarak devre dışıdır). Yükleme gizli modda temiz tamamlanıyorsa uzantılar sorundur. Suçluyu bulmak için birer birer etkinleştirin.
GPU zayıfsa donanım hızlandırmayı devre dışı bırakın
Entegre Intel UHD 620 veya benzeri GPU'lara sahip eski dizüstü bilgisayarlar, aynı anda ilerleme çubuğu güncellemesi ve dosya okuma tamponu işlerken bazen çöker. Chrome'un Ayarlar > Sistem > "Kullanılabilir olduğunda donanım hızlandırmayı kullan" seçeneği kapatılabilir. Bu, diğer her şey için biraz akıcılık kaybettirir ancak bellek kısıtlı sistemlerde büyük yüklemeleri kararlı hale getirir.
Benzer şekilde, yükleme sekmesi için Chrome'un "Bellek Tasarrufu" modunu devre dışı bırakın; bu mod, baskı altında sekmeleri yükleme ortasında çıkardığı için bilinmektedir. Sekmeyi sabitleyin veya açıkça hariç tutun.
Çok büyük dosyalar için Firefox'a geçin
Firefox tarihsel olarak File API'yi Chromium'dan daha sıkı bellek bütçeleriyle yönetir. Chrome'u defalarca çökerten 10 GB'lık bir yüklemede Firefox genellikle aynı işi sorunsuz tamamlar. İyi tasarlanmış hizmetlerde fark büyük değildir (her ikisi de parçalı akışı iyi yönetir), ancak daha az ideal uygulamalara sahip hizmetlerde Firefox'un tutucu bellek modeli daha bağışlayıcıdır.
macOS'ta Safari de büyük yüklemeler için güvenilirdir; uyarı olarak iOS Safari arka plan sekmelerini agresif biçimde sonlandırır.
Sekmeyi ön planda sabitleyin
Arka plan sekmeleri bellek baskısı altında ilk çıkarılanlardır. Yükleme sekmesini ön planda tutun. 30 dakika başka bir pencereye geçip döndüğünüzde sekmenin yeniden yüklendiğini bulursanız, üzerinde çalışan tüm yüklemeler ölmüştür. Chrome'un "atılmış" sekmeleri geri dönüşte gri bir yer tutucu gösterir.
macOS'ta caffeinate -s veya Windows'ta güç tasarrufu uyku modunu yükleme sırasında devre dışı bırakın. Uyuyan dizüstü bilgisayar WebSocket ve XHR bağlantılarını kapatır; her hizmet sonrasında temiz biçimde devam edemez.
Pil gücüyle değil prize takılı yükleyin
Pil gücündeki dizüstü bilgisayarlar CPU'yu ve RAM'i agresif biçimde kısıtlar. macOS'un "Düşük Güç Modu" ve Windows'un "Pil Tasarrufu"nun her ikisi de arka plan görev önceliğini düşürür; tarayıcı sekmesi AES şifrelemesi ve ağ yazmaları yapıyorsa bu duraklamalar anlamına gelir.
Prize takın. Pil tasarrufu modlarını devre dışı bırakın. Dizüstü bilgisayarın CPU performans profili seçeneği varsa (Dell Power Manager, Lenovo Vantage) süre boyunca "Performans"a ayarlayın.
Başlamadan önce tarayıcıyı yeniden başlatın
Chrome, Firefox ve Edge, uzun oturumlarda yavaş yavaş bellek sızdırır. 40 sekme açılıp kapatılmış iki günlük bir tarayıcı, yükleme sayfasını açmadan önce 2 GB zombie bellek taşıyabilir. Tamamen kapatın (macOS'ta yalnızca pencereyi değil Cmd+Q ile; Windows'ta görev çubuğunda sağ tıklayın > Çıkış) ve yeniden açın.
Parça boyutunu donanıma uydurun
Parça boyutunu yapılandırmanıza izin veren hizmetler için (çoğu yapmaz, ancak rclone gibi bazı CLI araçları yapar) daha küçük parçalar daha az bellek kullanır. 4 eş zamanlı worker ile 5 MB'lık parçalar, herhangi bir anda 20 MB'lık tampondur. 4 worker ile 100 MB'lık parçalar 400 MB'dır. 4 GB'lık makinede fark önemlidir.
Web tabanlı hizmetler sizin için varsayılanları seçer; genellikle parça başına 5-20 MB aralığında, bu makuldür. Ancak özel betikler bazen "daha hızlı gitmek" için daha büyük parçalara varsayar ve küçük makinelerde başarısız olurlar.
Yükleme sırasında Etkinlik Monitörü ile RAM'i izleyin
Yükleme sırasında tarayıcı işleminin belleğini izleyin. macOS Etkinlik Monitörü: Bellek sekmesi, tarayıcı adına göre filtrele. Windows Görev Yöneticisi: Ayrıntılar sekmesi, "Bellek (özel çalışma kümesi)" sütununa göre sırala.
Sağlıklı bir parçalı yükleme, ilerleme durumundan bağımsız olarak birkaç yüz MB'de sabit kalır. Bellek yükleme ilerlemesiyle doğrusal artıyorsa (10 GB'lık dosyanın yüzde 50'sinde 5 GB'a ulaşıyorsa) hizmet her şeyi arabelleğe alıyor demektir. Bu, hatadır. Farklı bir hizmet bulun.
Büyük tarayıcı yüklemeleri için tasarlanmış hizmetleri kullanın
İyi tasarlanmış bir aktarım hizmeti, şifreleme için Web Worker havuzuyla parçalı yükleme kullanır; belleği sınırlıdır ve başarısız parçalarda açık yeniden deneme vardır. HexaTransfer, Web Worker'larda File.slice() ile dosyaları okur, parça başına AES-256-GCM ile şifreler ve 50 MB veya aktarım başına tam 10 GB'lık tavan gönderiyor olsanız da birkaç yüz MB'ın üzerine çıkmaz; günlük hayatınızın tarayıcınıza attığı her şeyle baş ederken bu önemlidir.
hexatransfer.com'da deneyin — ücretsiz, hesap gerekmez, 10 GB'a kadar.
Uçtan uca şifreleme ile büyük dosyaları güvenle gönderin
Uçtan uca şifreleme ile 10 GB'a kadar dosya ücretsiz aktarın. Hesap gerekmez. Dosyalarınız yüklenmeden önce tarayıcınızda şifrelenir — başka kimse okuyamaz.
Dosya gönder