Розбір, відображення й потокова обробка великого JSON
Розбір часто не є вузьким місцем; ним є відображення й копіювання. Оптимізуйте вздовж чотирьох шарів «розбір → обхід → відображення → передача», щоб ваші зусилля не змарнувалися.
Файл JSON на десятки мегабайт може заморозити головний потік, а ретельно сконструйований JSON може пробити сервіс; ця категорія охоплює і пропускну здатність, і захист.
Статей: 6Розбір часто не є вузьким місцем; ним є відображення й копіювання. Оптимізуйте вздовж чотирьох шарів «розбір → обхід → відображення → передача», щоб ваші зусилля не змарнувалися.
Сам JSON.parse безпечний; небезпека в тому, що відбувається після нього: глибоке злиття, присвоєння за шляхом, вбудовування в HTML, необмежена глибина й розмір.
Мініфікація зрізає 30–50% сирого JSON, але gzip стирає більшу частину цього виграшу. Виміряні цифри на реальних формах плюс чотири випадки, коли мініфікація робить гірше.
Файл JSON на 10 МБ може стати 30–50 МБ у купі V8. Дізнайтеся, скільки насправді коштують рядки, обʼєкти й числа, як зняти базовий профіль через process.memoryUsage і коли допомагає потокова обробка.
Гальмування починається зі створення DOM-вузлів, а не з прокрутки. Охоплює відображення зі згортанням спершу, віртуальні списки, підсвічування пошуку й межі Worker, із метриками.
Багатомегабайтні JSON-вивантаження часто підвішують текстові редактори й онлайн-інструменти, хоча сам парсинг триває кілька сотень мілісекунд. Ми виміряли час і пам'ять на кожному етапі для зразка 45 МБ і 500 000 записів, показали, що справжня вартість — це кількість рядків і вузлів, і склали таблицю вибору інструментів за розміром файлу: онлайн-перегляд, командний рядок, стрімінг і десктопні застосунки.