تحليل JSON كبير: عرض واجهات سريع مع بيانات 100MB
2024-06-18
أدوات السجلات والتحليلات تصل بسهولة إلى أحجام ضخمة. إذا حللت كل شيء مرة واحدة ثم رسمت كل العقد، فالتجمّد شبه مضمون.
أين يضيع الوقت
JSON.parse متزامن ومكلف على المعالج، والنتيجة تستهلك heap كبيرًا.
غالبًا عرض ملايين العناصر أسوأ من التحليل نفسه، لذا يلزم افتراضية الواجهة.
التحليل داخل Worker
أرسل النص أو buffer إلى Worker وحلّل بعيدًا عن الخيط الرئيسي.
أعد فقط الشريحة المعروضة بدل إعادة كامل الرسم البياني للبيانات.
القوائم الافتراضية
للمصفوفات: اعرض الصفوف المرئية فقط عبر مكتبات virtualization.
للأشجار: حمّل الأبناء عند التوسيع بشكل كسول.
التدفق والتجزئة
JSON Lines مناسب للتدفق، أما المصفوفات الضخمة فتحتاج غالبًا pagination أو NDJSON.
يمكن لـ ReadableStream معالجة المحتوى تدريجيًا أثناء التحميل.
نصيحة 100MB الواقعية
الأفضل دائمًا ترشيح وتقسيم وضغط البيانات من الخادم.
إن كان العميل فقط: Worker + افتراضية + مؤشر تقدم + مراقبة ذاكرة في DevTools.