JSON Toolkit

ما حجم ملف JSON الذي يستطيع المتصفح معالجته

الخلاصة: لا يوجد حد ثابت؛ القيد هو ميزانية ذاكرة تبويبك. ملف بحجم 20MB يصير عادةً 60–100MB بعد التحليل، وDOM المميز بإبراز النحو قد يضاعف ذلك مرة أخرى.

مبتدئقراءة نحو 3 دقيقةنُشر في 2026-10-30حُدِّث في 2026-10-30
حدود ذاكرة المتصفح عند العمل مع JSON كبير

الخلاصة: لا سقف ثابت — قدّر من الذاكرة، لأن الكائن المحلل يكلف عادةً 3–5 أضعاف حجم النص وDOM المميز يضاعف ذلك مرة أخرى؛ وفوق 50MB، أو عندما يبلغ عدد السجلات العلوية مئات الآلاف، قطّع أو ابثّ أو انتقل إلى تطبيق محلي بدلًا من إجباره في تبويب.

أين تذهب الذاكرة

نص JSON بحجم 20MB موجود ثلاث مرات:

  1. السلسلة الخام: 20MB
  2. رسم الكائن المحلل: عادةً 60–100MB (سلاسل مكررة، ورؤوس كائنات، وجداول تجزئة)
  3. DOM المميز: عقدة لكل رمز، ويسهل أن يضاعف ذلك مرتين

وتُضاف مخازن المحرر وأكوام التراجع وذاكرات إبراز النحو. وقد يتجاوز «ملف 20MB» 200MB مقيمة.

قواعد تقريبية

الحجم سطح المكتب الهاتف المحمول
< 5MB سلس سلس
5–20MB تأخر طفيف، 1–3s للتنسيق تأخر ملحوظ، قد يتجمد
20–50MB قابل للعمل لكنه ثقيل؛ أوقف الإبراز قد ينهار
> 50MB غير موصى به غير صالح للاستخدام

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

لماذا لا يحل المزيد من RAM المشكلة

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

العمل مع الملفات الكبيرة

قطّعه.

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

ابثّه. stream-json، وijson، وjq --stream تعالج سجلًا بسجل بذاكرة مستقلة عن حجم الملف.

استخدم تطبيقًا محليًا. لا حدود تبويب، وذاكرة الآلة كاملة: تنزيل سطح المكتب.

غيّر التنسيق. ينبغي أن تكون السجلات وتدفقات الأحداث NDJSON من البداية — سجل واحد لكل سطر، وقابل للبث بالتصميم.

اطلب من الخادم التقليم. إن كانت الواجهة تحتاج ثلاثة حقول، فإرسال ثلاثمئة مشكلة تصميم API، لا قيد متصفح.

تقدير حجم ملفك

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

إن كان length بمئات الآلاف، فالترقيم أو البث هو الجواب بصرف النظر عن حجم البايت.

الأسئلة الشائعة

كيف أعرف في أي نطاق حجم يقع ملفي؟

افحص البايتات بـls -lh وعدد السجلات العلوية بـjq 'length'. الملفات دون بضعة ميغابايت سلسة في أي مكان، و20–50MB تعمل على سطح المكتب لكنها تتقطع، وفوق 50MB ينبغي أن تبثّها أو تستخدم أداة سطر أوامر.

ماذا أفعل بملف فوق 50MB؟

قطّعه بـhead -c، أو ابثّه بـjq أو stream-json أو jq --stream لتبقى الذاكرة مستقلة عن حجم الملف. وإن كنت بحاجة إلى فحص المستند كله، فاستخدم التطبيق المكتبي، فهو غير مقيد بميزانية ذاكرة تبويب. والسجلات وتدفقات الأحداث تنتمي إلى NDJSON أصلًا.

قراءة إضافية