في JavaScript ، عندما ننشئ متغيرات أو وظائف أو أي شيء آخر يمكنك التفكير فيه ، يخصص محرك JS ذاكرة لها ويطلقها عندما لا تكون هناك حاجة إليها ، لأن تخصيص الذاكرة هو عملية تخصيص الذاكرة أثناء تحرير الذاكرة. ، مما يجعل الفضاء جاهزًا للاستخدام لغرض آخر.

دورة حياة الذاكرة في جافا سكريبت

تحتوي دورة حياة الذاكرة على (3) مراحل أو مقاطع متماثلة لجميع لغات البرمجة ؛ اي:

  • تخصيص الذاكرة: حيث يتعامل JavaScript مع هذا هو أنه يخصص الذاكرة التي سيحتاجها المستخدم للكائن الذي يقوم بإنشائه.
  • استخدام الذاكرة: استخدام الذاكرة هو شيء نقوم به صراحة في التعليمات البرمجية الخاصة بنا بينما قراءة الذاكرة والكتابة ليست أكثر من القراءة أو الكتابة إلى أو من متغير.
  • تحرير الذاكرة: يتم تنفيذ هذه الخطوة أيضًا بواسطة محرك JavaScript ، لأنه بمجرد تحرير الذاكرة المخصصة ، يمكن استخدامها لغرض جديد.

التخزين المؤقت لمحرك جافا سكريبت / الكومة والكومة

تقوم محركات JavaScript بتخزين بياناتها في مكانين. ذاكرة الكومة والذاكرة موضحة أدناه:

1. ذاكرة ضخمة

هو نوع من بنية البيانات التي تستخدم طريقة Last In First Out (LIFO) لتخزين البيانات الثابتة نظرًا لحجمها الثابت المعروف للمحرك أثناء وقت الترجمة ، وهي ذاكرة ثابتة والبيانات الثابتة هي JavaScript ، (سلاسل ، رقم ، Boolean، null، undefined، icon، BigInt) يحتوي على مراجع للكائنات والوظائف بالإضافة إلى القيم الأولية مثل

2. كتلة الذاكرة

يعد التخصيص الديناميكي للذاكرة طريقة أخرى لتخزين البيانات في الذاكرة وتستخدم هذه الذاكرة لتخزين الأشياء في الذاكرة. لا تخصص JavaScript مقدارًا ثابتًا من الذاكرة لـ (Heap) بالطريقة التي يقوم بها Stack. بدلاً من ذلك ، فإنه يخصص مساحة أكبر أثناء وقت التشغيل ، أي. لا يوجد حجم معروف وذاكرة الكائن حدود في وقت التشغيل.

ما هو تسرب ذاكرة جافا سكريبت؟

تسرب الذاكرة هو تخصيص للذاكرة لا يمكن لمحرك JavaScript استردادها. يقوم محرك JavaScript بتخصيص الذاكرة عند إضافة كائنات ومتغيرات إلى برنامجك. الكائنات ذكية بما يكفي لتحرير الذاكرة عند عدم الحاجة إليها. تتسبب الأخطاء المنطقية في حدوث تسرب للذاكرة ، وهي تؤثر سلبًا على سرعة البرنامج ، فلنلقِ نظرة على أكثر تسريبات ذاكرة جافا سكريبت شيوعًا:

1. المتغيرات العالمية

عندما يتم تخزين البيانات في متغيرات عالمية ، فسوف يتسبب ذلك في حدوث تسرب للذاكرة مثل استخدام (var) بدلاً من (let أو const) في التعليمات البرمجية الخاصة بك ، يتم أيضًا تخزين المتغيرات غير المعلنة في الكائن العام ، استخدم (صارم) لتجنب هذا الموقف ممارسات أو ذاكرة أكثر أمانًا بالإضافة إلى منع المتغيرات العامة غير المرغوب فيها من التنشيط ، يمكنك ضبط المتغير العام على قيمة خالية بعد الاستخدام (JavaScript) لتجنب التسريبات (JavaScript) لأن هذه المراجع مخزنة مباشرة في الجذر ولا يمكن جمعها.

2. منسية توقيت

SetTimeout و SetInterval هما حدثان زمنيان في JavaScript وهما ميزات مهمة للغاية لأن SetTimeout هي وظيفة غير متزامنة يتم تنفيذها بعد انقضاء الوقت ، المحدد عادةً بالمللي ثانية ، بينما يسمح SetInterval بتنفيذ التعليمات البرمجية بشكل متكرر في فترات زمنية مختلفة. “، معظم حالات تسرب الذاكرة ناتجة عن هذه المؤقتات. لحل هذه المشكلة ، استخدم دائمًا (() clearInterval) عندما تعلم أن الوظيفة لن تكون مطلوبة ، وستستخدم (clearInterval (differentInterval)) لإلغاء الفاصل الزمني بعد أن كان تستخدم.

المصدر: وكالات

Share.

Leave A Reply