تجزیه، رندر و جریان دادن JSON بزرگ
تجزیه غالباً گلوگاه نیست؛ رندر و کپی هستند. در چهار لایه «تجزیه → پیمایش → رندر → انتقال» بهینه کنید تا تلاشتان تلف نشود.
فایل JSON چند ده مگابایتی میتواند رشته اصلی را قفل کند و JSON با دقت ساختهشده میتواند از یک سرویس عبور کند؛ این دسته هم توان عملیاتی و هم دفاعها را پوشش میدهد.
6 مقالهتجزیه غالباً گلوگاه نیست؛ رندر و کپی هستند. در چهار لایه «تجزیه → پیمایش → رندر → انتقال» بهینه کنید تا تلاشتان تلف نشود.
خود JSON.parse امن است؛ خطر در چیزی است که پس از آن رخ میدهد: ادغام عمیق، انتساب بر اساس مسیر، جاسازی در HTML، عمق و اندازه نامحدود.
فشردهسازی متنی ۳۰ تا ۵۰ درصد از JSON خام را میکوبد، اما gzip بیشتر این بهره را پاک میکند. اعداد اندازهگیریشده روی شکلهای واقعی، بهعلاوه چهار موردی که فشردهسازی وضع را بدتر میکند.
فایل JSON ده مگابایتی میتواند در heap V8 به ۳۰ تا ۵۰ مگابایت تبدیل شود. بیاموزید رشتهها، اشیا و عددها واقعاً چه هزینهای دارند، چگونه با process.memoryUsage خط پایه بگیرید و جریان چه زمانی کمک میکند.
لرزش وقتی شروع میشود که گرههای DOM ساخته میشوند، نه هنگام اسکرول. رندر جمعشده-اول، لیست مجازی، هایلایت جستوجو و مرزهای Worker را با معیارها پوشش میدهد.
خروجیهای JSON چند ده مگابایتی اغلب ویرایشگرهای متنی و ابزارهای آنلاین را قفل میکنند، حال آنکه خود پارس تنها چند صد میلیثانیه طول میکشد. ما زمان و حافظه هر مرحله را روی نمونهای ۴۵ مگابایتی با ۵۰۰ هزار رکورد اندازه گرفتیم، نشان دادیم هزینه واقعی در تعداد خطوط و گرههاست و جدول انتخاب ابزار بر اساس حجم فایل ارائه کردیم: مشاهده آنلاین، استخراج خط فرمانی، پردازش جریانی و برنامه دسکتاپ.