JSON Toolkit

Quanto grande può essere un file JSON per un browser

In sintesi: Non c'è un limite fisso; il vincolo è il budget di memoria della tua scheda. Un file da 20 MB diventa tipicamente 60–100 MB una volta analizzato, e il DOM evidenziato può raddoppiarlo di nuovo.

Principiante~3 min di letturaPubblicato il 2026-10-30Aggiornato il 2026-10-30
Limiti di memoria del browser quando si lavora con JSON di grandi dimensioni

In sintesi: non c'è un tetto fisso — stima dalla memoria, poiché l'oggetto analizzato costa di solito 3–5 volte la dimensione del testo e il DOM evidenziato lo raddoppia di nuovo; sopra i 50 MB, o quando il numero di record di primo livello arriva alle centinaia di migliaia, affetta, usa lo streaming o passa a un'app locale invece di forzarlo in una scheda.

Dove va la memoria

Un testo JSON da 20 MB esiste tre volte:

  1. La stringa grezza: 20 MB
  2. Il grafo di oggetti analizzato: di solito 60–100 MB (stringhe duplicate, intestazioni di oggetti, tabelle hash)
  3. Il DOM evidenziato: un nodo per token, facilmente un altro 2x

I buffer dell'editor, gli stack di undo e le cache di evidenziazione sintattica sono extra. Un "file da 20 MB" può superare i 200 MB residenti.

Regole pratiche

Dimensione Desktop Mobile
< 5 MB Fluido Fluido
5–20 MB Leggero ritardo, 1–3 s per formattare Ritardo evidente, può bloccarsi
20–50 MB Utilizzabile ma pesante; disattiva l'evidenziazione Probabile crash
> 50 MB Non raccomandato Non utilizzabile

Questi valori cambiano con dispositivo, versione del browser e se l'evidenziazione è attiva. Usali per ordini di grandezza, non come garanzie.

Perché più RAM non risolve

Le schede hanno un limite rigido, e superarlo significa un crash immediato invece di un degrado graduale. Il mobile è ancora più severo, recuperando memoria nell'ordine delle centinaia di megabyte basse.

Lavorare con file grandi

Affettalo.

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

Usa lo streaming. stream-json, ijson, jq --stream elaborano record per record con memoria indipendente dalla dimensione del file.

Usa un'app locale. Nessun limite di scheda, memoria completa della macchina: download desktop.

Cambia il formato. I log e i flussi di eventi dovrebbero essere NDJSON fin dall'inizio — un record per riga, utilizzabile in streaming per costruzione.

Chiedi al backend di ridurre. Se all'interfaccia servono tre campi, inviarne trecento è un problema di design dell'API, non un limite del browser.

Valutare la dimensione del file

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

Se length è nell'ordine delle centinaia di migliaia, la paginazione o lo streaming sono la risposta indipendentemente dalla dimensione in byte.

FAQ

Come faccio a sapere in quale fascia di dimensione cade il mio file?

Controlla i byte con ls -lh e il numero di record di primo livello con jq 'length'. I file sotto qualche megabyte sono fluidi ovunque, 20–50 MB funzionano su desktop ma a scatti, e sopra i 50 MB dovresti usare streaming o uno strumento da riga di comando.

Cosa devo fare con un file oltre i 50 MB?

Affettalo con head -c, oppure usalo in streaming con jq, stream-json o jq --stream così la memoria resta indipendente dalla dimensione del file. Se devi ispezionare l'intero documento, usa l'app desktop, che non è vincolata dal budget di memoria di una scheda. Log e flussi di eventi appartengono comunque a NDJSON.

Ulteriori letture