Jak velký soubor JSON zvládne prohlížeč
Shrnutí: Neexistuje žádný pevný limit; omezením je paměťový rozpočet vaší záložky. 20MB soubor obvykle po parsování zabere 60–100 MB a zvýrazněný DOM to může znovu zdvojnásobit.

Stručně: pevný strop neexistuje – odhadujte podle paměti, protože parsovaný objekt obvykle stojí 3–5násobek velikosti textu a zvýrazněný DOM to znovu zdvojnásobí; nad 50 MB, nebo když počet záznamů na nejvyšší úrovni jde do stovek tisíc, raději krájejte, streamujte nebo přejděte k lokální aplikaci, místo abyste to nutili do záložky.
Kam jde paměť
20MB text JSON existuje třikrát:
- Surový řetězec: 20 MB
- Parsovaný graf objektů: obvykle 60–100 MB (duplikované řetězce, hlavičky objektů, hash tabulky)
- Zvýrazněný DOM: jeden uzel na token, snadno další 2x
Buffery editoru, zásoby pro undo a caches zvýrazňování jsou navíc. „20MB soubor“ může přesáhnout 200 MB v paměti.
Orientační pravidla
| Velikost | Desktop | Mobil |
|---|---|---|
| < 5 MB | Plynulé | Plynulé |
| 5–20 MB | Mírné zpoždění, 1–3 s na formátování | Znatelné zpoždění, může zamrznout |
| 20–50 MB | Použitelné, ale těžké; vypněte zvýrazňování | Pravděpodobně havárie |
| > 50 MB | Nedoporučuje se | Nepoužitelné |
Tyto hodnoty se posouvají podle zařízení, verze prohlížeče a toho, zda je zapnuté zvýrazňování. Používejte je pro řád odhadu, nikoli jako záruku.
Proč to nepomůže, když přidáte RAM
Záložky mají tvrdý limit a jeho překročení znamená okamžitou havárii, nikoli elegantní degradaci. Mobil je ještě přísnější a uvolňuje paměť už v řádu stovek MB.
Práce s velkými soubory
Krájejte.
head -c 1048576 big.json | jq .
jq '.items[0:100]' big.json
Streamujte. stream-json, ijson, jq --stream zpracovávají záznam po záznamu s pamětí nezávislou na velikosti souboru.
Použijte lokální aplikaci. Žádné limity záložky, plná paměť stroje: stažení desktopové aplikace.
Změňte formát. Logy a proud událostí mají být NDJSON od začátku – jeden záznam na řádek, streamovatelné z podstaty.
Požádejte backend, aby data zúžil. Pokud UI potřebuje tři pole, posílat tři sta je problém návrhu API, nikoli limit prohlížeče.
Změření souboru
ls -lh data.json
jq 'length' data.json
Pokud je length ve stovkách tisíc, odpovědí je stránkování nebo streamování bez ohledu na počet bajtů.
Časté dotazy
Jak zjistit, do které velikostní kategorie můj soubor patří?
Zkontrolujte bajty pomocí ls -lh a počet záznamů na nejvyšší úrovni pomocí jq 'length'. Soubory pod několik MB jsou plynulé všude, 20–50 MB funguje na desktopu, ale zadrhává, a nad 50 MB byste měli streamovat nebo použít nástroj příkazového řádku.
Co mám dělat se souborem nad 50 MB?
Nakrájejte ho pomocí head -c, nebo streamujte pomocí jq, stream-json nebo jq --stream, aby paměť zůstala nezávislá na velikosti souboru. Pokud potřebujete prohlédnout celý dokument, použijte desktopovou aplikaci, která není svázána paměťovým rozpočtem záložky. Logy a proud událostí stejně patří do NDJSON.