JSON Toolkit

Seberapa besar file JSON yang bisa ditangani browser

Intinya: Tidak ada batas tetap; kendalanya adalah anggaran memori tab Anda. File 20MB biasanya menjadi 60–100MB setelah di-parse, dan DOM yang di-highlight bisa menggandakannya lagi.

Pemula±3 menit bacaDiterbitkan 2026-10-30Diperbarui 2026-10-30
Batas memori browser saat bekerja dengan JSON besar

Intinya: tidak ada batas atas tetap — perkirakan dari memori, karena objek hasil parse biasanya memakan 3–5 kali ukuran teks dan DOM yang di-highlight menggandakannya lagi; di atas 50MB, atau ketika jumlah record tingkat atas mencapai ratusan ribu, potong, stream atau beralih ke aplikasi lokal alih-alih memaksanya di tab.

Ke mana memori pergi

Teks JSON 20MB ada tiga kali:

  1. String mentah: 20MB
  2. Graf objek hasil parse: biasanya 60–100MB (string terduplikasi, header objek, hash table)
  3. DOM yang di-highlight: satu node per token, mudah bertambah 2x lagi

Buffer editor, undo stack dan cache syntax-highlight adalah tambahan. "File 20MB" bisa melebihi 200MB resident.

Aturan praktis

Ukuran Desktop Mobile
< 5MB Lancar Lancar
5–20MB Sedikit lag, 1–3 detik untuk format Lag terasa, bisa membeku
20–50MB Bisa dipakai tetapi berat; matikan highlighting Kemungkinan crash
> 50MB Tidak disarankan Tidak dapat dipakai

Angka ini bergeser tergantung perangkat, versi browser dan apakah highlighting aktif. Gunakan sebagai orde besaran, bukan jaminan.

Mengapa RAM lebih besar tidak memperbaikinya

Tab punya batas keras, dan melewatinya berarti crash langsung alih-alih degradasi bertahap. Mobile bahkan lebih ketat, merebut kembali memori di kisaran ratusan megabyte rendah.

Bekerja dengan file besar

Potong.

head -c 1048576 big.json | jq .
jq '.items[0:100]' big.json

Stream. stream-json, ijson, jq --stream memproses catatan per catatan dengan memori yang independen dari ukuran file.

Gunakan aplikasi lokal. Tanpa batas tab, memori mesin penuh: unduh desktop.

Ubah formatnya. Log dan event stream sebaiknya NDJSON sejak awal — satu record per baris, bisa di-stream secara bawaan.

Minta backend memangkas. Jika UI butuh tiga field, mengirim tiga ratus adalah masalah desain API, bukan keterbatasan browser.

Mengukur ukuran file Anda

ls -lh data.json
jq 'length' data.json

Jika length berada di ratusan ribu, pagination atau streaming adalah jawabannya terlepas dari ukuran byte.

FAQ

Bagaimana cara mengetahui rentang ukuran file saya?

Periksa byte dengan ls -lh dan jumlah record tingkat atas dengan jq 'length'. File di bawah beberapa megabyte lancar di mana saja, 20–50MB berfungsi di desktop tetapi tersendat, dan di atas 50MB sebaiknya streaming atau gunakan alat command line.

Apa yang harus saya lakukan dengan file di atas 50MB?

Potong dengan head -c, atau stream dengan jq, stream-json atau jq --stream agar memori tetap independen dari ukuran file. Jika perlu memeriksa seluruh dokumen, gunakan aplikasi desktop, yang tidak dibatasi anggaran memori tab. Log dan event stream memang sebaiknya dalam NDJSON.

Bacaan lanjutan