هناك مشكلة شائعة أثناء العمل في مشروع JavaScript Node.js وهي الخطأ "نفاد الذاكرة من كومة JavaScript". يحدث هذا الخطأ عادةً عندما لا تكفي الذاكرة الافتراضية التي خصصها نظامك لـ Node.js لتشغيل مشروع كبير.
الخطأ شائع سواء قمت بتشغيل مشروعك على Windows أو macOS أو توزيع Linux مثل Ubuntu. لحسن الحظ ، هناك بعض الحلول السهلة التي يمكن أن تساعد في حل خطأ "نفاد الذاكرة من كومة JavaScript".
ما هي ذاكرة الكومة؟
قبل النظر في إصلاح الخطأ ، من المفيد القيام بذلك فهم ما هي ذاكرة الكومة وكيف تستخدمه البرامج.
تسمى الذاكرة المخصصة على كومة النظام أيضًا الذاكرة المخصصة ديناميكيًا. الأمر متروك للمبرمج لاستخدام الذاكرة المتاحة على النحو الذي يراه مناسبًا. الأهم من ذلك ، يعتمد حجم الكومة لبرنامج ما على الذاكرة الظاهرية المتاحة المخصصة له.
إذا كنت تدير مشروعًا كبيرًا نسبيًا ، فقد يتطلب ذاكرة أكبر من الجزء المخصص الافتراضي. قد يتسبب هذا في تعطل مشروعك وتسجيل الخطأ "نفاد الذاكرة من كومة JavaScript".
كيفية إصلاح JavaScript Heap Out of Memory على Windows
بغض النظر عن IDE الخاص بك ، فإن إصلاح "نفاد الذاكرة" في JavaScript هو نفسه.
تستطيع إضافة متغير البيئة من خلال لوحة التحكم لزيادة الذاكرة المخصصة لمشروع Node.js.
- افتح ال قائمة البدأ، البحث عن إعدادات النظام المتقدمة، وحدد أفضل تطابق.
- من مربع الحوار ، انقر فوق متغيرات البيئة، ثم انقر فوق جديد إما من متغيرات النظام أو متغيرات المستخدم. ينطبق الأول على جميع المستخدمين على جهاز الكمبيوتر الخاص بك ، بينما يؤثر الأخير على حسابك الحالي فقط
- في ال اسم المتغير أدخل الحقل NODE_OPTIONS. في ال قيمة متغيرة أدخل الحقل - الحجم الأقصى للمساحة القديمة = 4096. ستخصص هذه القيمة 4 جيجابايت من الذاكرة الظاهرية لـ Node.js. لتعيين قيمة مختلفة ، اضرب المبلغ الذي تطلبه بالجيجابايت في 1024 (يجب أن تكون القيمة المتغيرة بالميجابايت).
- انقر فوق نعم لحفظ التغييرات ، ثم انقر فوق يتقدم وأخيرا انقر فوق نعم مرة أخرى. أعد تشغيل مشروعك لتصبح التغييرات سارية المفعول.
يمكنك أيضًا تعيين متغير البيئة من خلال محطة Windows PowerShell.
قم بتشغيل محطة PowerShell ، اكتب الأمر أدناه واضغط على Enter:
$ env: NODE_OPTIONS ="- الحجم الأقصى للمساحة القديمة = 4096"
إذا كنت ترغب فقط في زيادة ذاكرة الكومة مؤقتًا ، فقم بتشغيل الأمر أدناه في محطة PowerShell قبل تشغيل مشروعك:
تعيين NODE_OPTIONS =- الحجم الأقصى للمساحة القديمة = 4096
بمجرد إدخال هذا الأمر ، يمكنك نشر / تشغيل مشروعك باستخدام npm تشغيل dev أو البرنامج النصي الخاص بك.
تذكر دائمًا إدخال حجم الذاكرة المطلوب بالميجابايت. قد يؤدي عدم القيام بذلك إلى حدوث سلوك غير متوقع في برنامجك. من الضروري أيضًا عدم تخصيص كامل الذاكرة المتوفرة لديك لأن ذلك قد يتسبب في فشل كبير في النظام.
كيفية إصلاح خطأ نفاد الذاكرة في JavaScript Heap على macOS و Linux
في نظامي macOS و Linux ، يكون إصلاح ذاكرة الكومة متشابهًا جدًا. يجب تصدير متغير البيئة التي تحدد مقدار الذاكرة الظاهرية المخصصة لـ Node.js.
في المحطة الطرفية ، قبل تشغيل مشروعك ، أدخل الأمر التالي واضغط على Enter:
يصدّر NODE_OPTIONS = - أقصى حجم للمسافة القديمة =4096
سيؤدي هذا إلى تخصيص 4 جيجا بايت من الذاكرة الافتراضية لمساحة تنفيذ Node.js. لتعيين مقدار مختلف من الذاكرة ، استبدل 4096 بالمبلغ المطلوب بالميغا بايت.
يمكنك إضافة الأمر أعلاه إلى ملف التكوين الخاص بك لتجنب تكرار العملية. للقيام بذلك ، اتبع نفس الشيء عملية لتحديد متغير PATH الخاص بك.
تجنب خطأ نفاد الذاكرة في JavaScript Heap
يمكنك تجنب هذا الخطأ من خلال التأكد من خلو برنامجك من تسرب الذاكرة. تعد الإدارة السليمة للذاكرة أمرًا بالغ الأهمية عند كتابة برامجك ، خاصةً بلغة منخفضة المستوى.
بينما ستؤدي زيادة الذاكرة المخصصة إلى حل المشكلة مؤقتًا ، يجب أن تجد السبب الأساسي وإصلاحه.