تحليل JSON كبير: عرض واجهات سريع مع بيانات 100MB

2024-06-18

أدوات السجلات والتحليلات تصل بسهولة إلى أحجام ضخمة. إذا حللت كل شيء مرة واحدة ثم رسمت كل العقد، فالتجمّد شبه مضمون.

أين يضيع الوقت

JSON.parse متزامن ومكلف على المعالج، والنتيجة تستهلك heap كبيرًا.

غالبًا عرض ملايين العناصر أسوأ من التحليل نفسه، لذا يلزم افتراضية الواجهة.

التحليل داخل Worker

أرسل النص أو buffer إلى Worker وحلّل بعيدًا عن الخيط الرئيسي.

أعد فقط الشريحة المعروضة بدل إعادة كامل الرسم البياني للبيانات.

القوائم الافتراضية

للمصفوفات: اعرض الصفوف المرئية فقط عبر مكتبات virtualization.

للأشجار: حمّل الأبناء عند التوسيع بشكل كسول.

التدفق والتجزئة

JSON Lines مناسب للتدفق، أما المصفوفات الضخمة فتحتاج غالبًا pagination أو NDJSON.

يمكن لـ ReadableStream معالجة المحتوى تدريجيًا أثناء التحميل.

نصيحة 100MB الواقعية

الأفضل دائمًا ترشيح وتقسيم وضغط البيانات من الخادم.

إن كان العميل فقط: Worker + افتراضية + مؤشر تقدم + مراقبة ذاكرة في DevTools.