JSON Toolkit

Який розмір файлу JSON може обробити браузер

Головне: Фіксованої межі немає; обмеження — бюджет памʼяті вашої вкладки. Файл на 20 МБ типово стає 60–100 МБ після розбору, а підсвічений DOM може подвоїти це знову.

Початковий~3 хв читанняОпубліковано 2026-10-30Оновлено 2026-10-30
Ліміти памʼяті браузера під час роботи з великим JSON

Коротко: фіксованої стелі немає — оцінюйте за памʼяттю, бо розібраний обʼєкт зазвичай коштує в 3–5 разів більше за розмір тексту, а підсвічений DOM подвоює це знову; понад 50 МБ, або коли кількість записів верхнього рівня сягає сотень тисяч, нарізайте, потоково обробляйте або переходьте на локальний застосунок замість вганяти це у вкладку.

Куди йде памʼять

Текст JSON на 20 МБ існує тричі:

  1. Сирий рядок: 20 МБ
  2. Розібраний граф обʼєктів: зазвичай 60–100 МБ (дубльовані рядки, заголовки обʼєктів, хеш-таблиці)
  3. Підсвічений DOM: один вузол на токен, легко ще 2x

Буфери редактора, стеки скасування й кеші підсвічування — додатково. «Файл на 20 МБ» може перевищити 200 МБ резидентної памʼяті.

Практичні правила

Розмір Десктоп Мобільний
< 5 МБ Плавно Плавно
5–20 МБ Легка затримка, 1–3 с на форматування Помітна затримка, може замерзнути
20–50 МБ Робочо, але важко; вимкніть підсвічування Імовірний крах
> 50 МБ Не рекомендовано Непридатно

Вони зсуваються залежно від пристрою, версії браузера й того, чи ввімкнене підсвічування. Використовуйте їх для порядку величини, а не як гарантії.

Чому більше RAM це не виправляє

Вкладки мають жорсткий ліміт, і його перевищення означає негайний крах, а не поступову деградацію. Мобільні ще строгіші, звільняючи на рівні низьких сотень мегабайт.

Робота з великими файлами

Наріжте.

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

Потоково обробляйте. stream-json, ijson, jq --stream обробляють запис за записом із памʼяттю, незалежною від розміру файлу.

Використовуйте локальний застосунок. Без лімітів вкладки, повна памʼять машини: завантаження десктопного застосунку.

Змініть формат. Логи й потоки подій мають бути NDJSON від початку — один запис на рядок, потокові за конструкцією.

Попросіть бекенд скоротити. Якщо UI потрібні три поля, надсилання трьохсот — проблема дизайну API, а не обмеження браузера.

Оцінка розміру файлу

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

Якщо length у сотнях тисяч, пагінація або потокова обробка — відповідь незалежно від байтового розміру.

Часті питання

Як зрозуміти, у який діапазон розміру потрапляє мій файл?

Перевірте байти через ls -lh і кількість записів верхнього рівня через jq 'length'. Файли до кількох мегабайт плавні всюди, 20–50 МБ працюють на десктопі, але гальмують, а понад 50 МБ слід потоково обробляти або використовувати інструмент командного рядка.

Що робити з файлом понад 50 МБ?

Наріжте його через head -c або потоково обробляйте через jq, stream-json чи jq --stream, щоб памʼять лишалася незалежною від розміру файлу. Якщо треба оглянути весь документ, використовуйте десктопний застосунок, який не обмежений бюджетом памʼяті вкладки. Логи й потоки подій усе одно належать NDJSON.

Додаткове читання