İçeriğe geç
FileSlimmer
Araçlar
Rehberler

Dosya işlerken tarayıcı bellek sınırları

Son gözden geçirme

Dosyam sadece 15 MB. Sekmenin belleği neden doldu?

4 dk okuma · 17 Ağustos 2026 tarihinde gözden geçirildi

Diskteki dosya, sıkıştırılmış olan sürümdür

Yanlış anlaşılmanın tamamı tek cümlede: dosya yöneticisinde gördüğünüz sayı, sıkıştırılmış verinin boyutudur ve sıkıştırılmış haldeyken hiçbir şey işlenemez. Bir görüntüyü yeniden boyutlandırmak, yeniden sıkıştırmak, dönüştürmek ya da çözümlemek için önce kodunun çözülüp ham piksellere dönüştürülmesi gerekir; ham pikseller ise devasadır.

Aritmetik basit. Bellekteki bir piksel normalde dört bayttır — kırmızı, yeşil, mavi ve alfa. 4000 × 3000 bir fotoğraf on iki milyon pikseldir; yani kodu çözülmüş bit eşlem yaklaşık 48 MB olur. Geldiği JPEG 4 MB olabilir. Dosya, daha hiçbir iş başlamadan on iki katına çıkmıştır.

Piksel başına dört bayt üzerinden, bir görüntünün kodu çözülmüş boyutu
ÖlçülerPikselKodu çözülmüş bit eşlem
1920 × 10802,1 milyonyaklaşık 8 MB
4000 × 300012 milyonyaklaşık 48 MB
6000 × 400024 milyonyaklaşık 96 MB
10000 × 10000100 milyonyaklaşık 400 MB

Üstelik tek kopya asla yetmez

Gerçekçi bir işlem akışı aynı anda birkaç kopya tutar: sıkıştırılmış girdi baytları, kodu çözülmüş kaynak bit eşlem, yeni ölçülerdeki çıktı bit eşlemi, kodlayıcının iç arabellekleri ve sıkıştırılmış sonuç. Size bir de önizleme gösteren bir araç bir kopya daha tutar. Yukarıdaki 4000 × 3000 fotoğraf için, 4 MB gibi görünen bir dosya söz konusuyken iki ila üç yüz megabaytlık bir tepe çalışma kümesi tamamen sıradandır.

PDF rasterleştirme de sayfa sayfa aynı şekilde davranır: 300 DPI'da işlenen bir A4 sayfası kabaca 2480 × 3508 pikseldir, kodu çözüldüğünde yaklaşık 35 MB eder ve aynı anda birkaç sayfa işleyen bir araç bunu katlar. Video daha da kötüdür, çünkü bir kod çözücünün aynı anda bellekte duran birkaç referans kareye ihtiyacı vardır.

Gerçek tavanlar nerede

  • Bir sekmenin bellek bütçesini site değil tarayıcı belirler ve bu bütçe, makinede kurulu bellekten küçüktür. Diğer sekmeler meşgulken ayrıca daralır.
  • Yaygın 32 bitlik bellek modeli için derlenmiş WebAssembly modülleri en fazla dört gibibayt adresleyebilir ve tarayıcılar örnek başına çoğu zaman bundan epeyce azına izin verir.
  • Tek tek arabelleklerin kendi azami uzunlukları vardır ve bu, bir sayfanın kullanabileceği toplam belleğin epey altındadır.
  • Mobil işletim sistemleri fazla büyüyen bir sekmeyi sonlandırır; hiçbir uyarı vermeden ve sayfanın yakalayabileceği bir hata üretmeden.
  • Grafik belleği ayrı ve daha küçük bir havuzdur. Platformun azami ölçüsünden büyük bir canvas, sistem belleğinde ne kadar boş yer olursa olsun basitçe başarısız olur.

Bunların hiçbiri bakıp öğrenebileceğiniz tek bir sayı olarak yayımlanmaz, çünkü tarayıcıya, sürüme, cihaza ve başka nelerin çalıştığına bağlıdırlar. Asıl zorluk budur: bir araç, ne kadar bellek kullanabileceğini soramaz.

Telefonlar neden en sıkı durumdur

Telefonlarda daha az fiziksel bellek, masaüstündeki anlamıyla takas alanının bulunmaması ve belleği arka plan süreçlerinden geri almakta agresif bir işletim sistemi vardır. Bir mesajı yanıtladığınız anda tarayıcı sekmesi arka plan sürecine dönüşür. Bu yüzden mobil tarayıcılar daha dar bütçeler tutar ve bir sekmeyi atmakta daha hızlıdır; bu atma da size genellikle bir hata gibi değil, sayfanın yeniden yüklenip yaptığınız işi kaybetmesi gibi görünür.

Pratikteki sonuç şu: dizüstü bilgisayarda tamamlanan bir iş, aynı dosyayla bir telefonda imkânsız olabilir. Bu, araçtaki bir kusur değildir. Bir donanım sınırıdır ve dürüst davranış, yarı yolda çökmek yerine bunu başlamadan önce söylemektir.

Dikkatli bir araç nasıl davranır

  • Herhangi bir şey ayırmadan önce, kodu çözülmüş ölçülerden çalışma kümesini tahmin eder ve açıkça sığmayacak bir işi reddeder.
  • Kısıtlı bir cihazda toplu işi paralel çalıştırmak yerine dosyaları teker teker işler.
  • Arabellekleri sayfa ile worker'ları arasında kopyalamak yerine aktarır; böylece büyük bir dosya iki kez var olmaz.
  • Her sonucu yazılır yazılmaz serbest bırakır ve aksi halde veriyi canlı tutacak olan geçici URL'leri iptal eder.
  • Biçimin izin verdiği yerlerde, belgenin tamamını belleğe yüklemek yerine sayfa sayfa ya da kare kare akıtır.
  • Kabul edeceği piksel sayısına bir üst sınır koyar; devasa bir tuval boyutuna açılan küçük bir dosyanın sekmeyi çökertmesini önleyen de budur.

Bir iş başarısız olduğunda ne yapabilirsiniz

  • Diğer sekmeleri kapatın. Aynı bütçe için yarışıyorlar ve tarayıcılar bunu adil paylaştırmıyor.
  • Aynı anda daha az dosya işleyin. Tek dosyalık bir kuyruk daha yavaştır ama tamamlanma olasılığı çok daha yüksektir.
  • Önce ölçüleri küçültün. En uzun kenarı yarıya indirmek çalışma kümesini dörtte bire düşürür ve zaten çoğu zaman istediğiniz şey budur.
  • Büyük bir PDF'yi bölün ve parçaları işleyin.
  • En büyük işler için bir masaüstü makineye geçin. Bu, yerel işlemenin başarısızlığı değil; elinizdeki donanımın doğru kullanımıdır.
  • Bir sekme günlerdir açıksa tarayıcıyı yeniden başlatın. Uzun ömürlü sekmeler, bir yeniden yüklemenin serbest bırakacağı belleği biriktirir.

Her tahminin sınırı

Tarayıcılar kullanılabilir bellek hakkında yalnızca kaba bir ipucu sunar, bazıları hiçbir şey sunmaz. Bu yüzden yerel bir aracın size gösterdiği her rakam, işletim sisteminden alınmış bir okuma değil, dosyanın kendi ölçülerinden ve işlem akışının temkinli bir modelinden kurulmuş bir tahmindir. Bir işe girişip girişmemeye karar vermek için yararlıdır. İşin tamamlanacağının vaadi değildir, çünkü belirleyici etken — cihazın geri kalanının önümüzdeki otuz saniyede ne yaptığı — bir web sayfasının görebileceği bir şey değildir.

Bunun için araçlar

Kaynaklar

Diğer rehberler

Tüm FileSlimmer rehberleri