Lompat ke konten
FileSlimmer
Alat
Panduan

Batas memori browser saat memproses file

Terakhir ditinjau

File saya cuma 15 MB. Kenapa tabnya bisa kehabisan memori?

Baca 4 menit · ditinjau 17 Agustus 2026

File di disk adalah versi yang terkompresi

Inilah seluruh kesalahpahamannya dalam satu kalimat: angka yang Anda lihat di pengelola file adalah ukuran data yang sudah terkompresi, dan tidak ada apa pun yang bisa diproses selama masih terkompresi. Untuk mengubah ukuran, mengompresi ulang, mengonversi, atau menganalisis sebuah gambar, gambar itu harus didekode dulu menjadi piksel mentah, dan piksel mentah itu raksasa.

Hitungannya sederhana. Satu piksel di memori biasanya empat byte — merah, hijau, biru, dan alfa. Foto 4000 × 3000 adalah dua belas juta piksel, jadi bitmap hasil dekodenya sekitar 48 MB. JPEG asalnya mungkin cuma 4 MB. Filenya membengkak dua belas kali lipat bahkan sebelum ada pekerjaan yang dimulai.

Ukuran gambar setelah didekode, pada empat byte per piksel
DimensiPikselBitmap hasil dekode
1920 × 10802,1 jutasekitar 8 MB
4000 × 300012 jutasekitar 48 MB
6000 × 400024 jutasekitar 96 MB
10000 × 10000100 jutasekitar 400 MB

Dan satu salinan tidak pernah cukup

Alur kerja yang realistis memegang beberapa salinan sekaligus: byte masukan yang terkompresi, bitmap sumber hasil dekode, bitmap keluaran pada dimensi yang baru, buffer internal encoder, dan hasil yang sudah terkompresi. Alat yang juga menampilkan pratinjau kepada Anda memegang satu salinan lagi. Untuk foto 4000 × 3000 di atas, pemakaian memori puncak dua sampai tiga ratus megabyte adalah hal yang sepenuhnya biasa, untuk file yang tampaknya cuma 4 MB.

Rasterisasi PDF berperilaku sama, halaman demi halaman: halaman A4 yang dirender pada 300 DPI kira-kira 2480 × 3508 piksel, sekitar 35 MB setelah didekode, dan alat yang merender beberapa halaman sekaligus melipatgandakan angka itu. Video lebih parah lagi, karena decoder butuh beberapa frame referensi berada di memori pada saat yang sama.

Di mana langit-langit yang sebenarnya

  • Anggaran memori sebuah tab ditetapkan oleh browser, bukan oleh situsnya, dan angkanya lebih kecil daripada memori yang terpasang di komputer. Anggaran itu juga menyusut ketika tab-tab lain sedang sibuk.
  • Modul WebAssembly yang dibangun untuk model memori 32 bit yang umum hanya bisa mengalamati paling banyak empat gibibyte, dan browser sering mengizinkan jauh lebih sedikit dari itu per instans.
  • Setiap buffer punya panjang maksimumnya sendiri, yang jauh di bawah total memori yang boleh dipakai sebuah halaman.
  • Sistem operasi seluler menghentikan tab yang tumbuh terlalu besar, tanpa peringatan dan tanpa error yang bisa ditangkap halamannya.
  • Memori grafis adalah kolam tersendiri yang lebih kecil. Canvas yang lebih besar dari dimensi maksimum platformnya langsung gagal begitu saja, sebanyak apa pun memori sistem yang menganggur.

Tidak satu pun dari batas-batas ini diumumkan sebagai satu angka yang bisa Anda cari, karena semuanya bergantung pada browser-nya, versinya, perangkatnya, dan apa lagi yang sedang berjalan. Itulah kesulitan yang sebenarnya: sebuah alat tidak bisa bertanya berapa banyak memori yang boleh dipakainya.

Kenapa ponsel adalah kasus yang paling ketat

Ponsel punya memori fisik yang lebih sedikit, tidak punya swap dalam pengertian desktop, dan sistem operasi yang agresif merebutnya kembali dari proses latar. Tab browser menjadi proses latar begitu Anda membalas sebuah pesan. Karena itu browser seluler menetapkan anggaran yang lebih ketat dan lebih cepat membuang sebuah tab, dan pembuangan itu biasanya tampak bagi Anda seperti halaman yang memuat ulang dan menghilangkan pekerjaan Anda, bukan seperti sebuah error.

Konsekuensi praktisnya, tugas yang selesai di laptop bisa mustahil dijalankan di ponsel dengan file yang sama. Itu bukan cacat pada alatnya. Itu batas perangkat keras, dan respons yang jujur adalah mengatakannya sebelum memulai, bukan mogok di tengah jalan.

Bagaimana alat yang cermat berperilaku

  • Ia memperkirakan kebutuhan memorinya dari dimensi hasil dekode sebelum mengalokasikan apa pun, dan menolak tugas yang jelas-jelas tidak akan muat.
  • Ia memproses satu file dalam satu waktu di perangkat yang terbatas, alih-alih menjalankan satu batch secara paralel.
  • Ia memindahkan buffer antara halaman dan worker-nya alih-alih menyalinnya, sehingga file besar tidak sampai ada dua kali.
  • Ia melepaskan setiap hasil segera setelah hasil itu ditulis, dan mencabut URL sementara yang kalau dibiarkan akan menahan datanya tetap hidup.
  • Ia mengalirkan datanya halaman demi halaman atau frame demi frame pada format yang memungkinkan, alih-alih memuat seluruh dokumen ke memori.
  • Ia membatasi jumlah piksel yang mau diterimanya, dan itu jugalah yang mencegah file kecil yang mengembang menjadi canvas raksasa merobohkan tabnya.

Apa yang bisa Anda lakukan ketika sebuah tugas gagal

  • Tutup tab-tab lain. Semuanya bersaing memperebutkan anggaran yang sama, dan browser tidak membaginya secara adil.
  • Proses lebih sedikit file sekaligus. Antrean berisi satu file memang lebih lambat, tetapi jauh lebih mungkin selesai.
  • Turunkan dimensinya lebih dulu. Memangkas sisi terpanjang menjadi setengah memangkas kebutuhan memorinya menjadi seperempat, dan itu sering memang yang Anda inginkan.
  • Pecah PDF yang besar lalu proses bagian-bagiannya.
  • Pindah ke komputer desktop untuk tugas-tugas yang paling besar. Ini bukan kegagalan pemrosesan lokal; ini cara yang benar dalam memakai perangkat keras yang Anda punya.
  • Mulai ulang browser-nya kalau sebuah tab sudah terbuka berhari-hari. Tab yang berumur panjang menumpuk memori yang bisa dilepaskan oleh satu kali muat ulang.

Batas dari setiap perkiraan

Browser hanya menyediakan petunjuk kasar tentang memori yang tersedia, dan sebagian tidak menyediakan apa pun. Karena itu, angka apa pun yang ditampilkan sebuah alat lokal adalah perkiraan yang dibangun dari dimensi filenya sendiri dan model alur kerja yang konservatif, bukan pembacaan dari sistem operasi. Angka itu berguna untuk memutuskan apakah sebuah tugas layak dicoba. Angka itu bukan janji bahwa tugasnya akan selesai, karena faktor penentunya — apa yang dikerjakan bagian lain perangkat itu dalam tiga puluh detik berikutnya — bukan sesuatu yang bisa dilihat sebuah halaman web.

Alat untuk ini

Sumber

Panduan lainnya

Semua panduan FileSlimmer