منتديات أحاسيس الليل

منتديات أحاسيس الليل (http://www.a7-lil.com/vb/index.php)
-   تطوير المواقع والمنتديات والمدونات (http://www.a7-lil.com/vb/forumdisplay.php?f=104)
-   -   كيفية إدارة الذاكرة في جافا سكريبت (http://www.a7-lil.com/vb/showthread.php?t=21282)

عاشق الغيم 13-Feb-2023 12:27 AM

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

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


هناك (3) مراحل أو أجزاء من دورة حياة الذاكرة والتي هي نفسها لجميع لغات البرمجة؛ وهي:


تخصيص الذاكرة: حيث تعتني (JavaScript) بهذا الأمر فهي تخصص الذاكرة التي سيحتاجها المستخدم للكائن الذي أنشأه.


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

تحرير الذاكرة: يتم التعامل مع هذه الخطوة أيضًا بواسطة محرك (JavaScript)، حيث أنه بمجرد تحرير الذاكرة المخصصة، يمكن استخدامها لغرض جديد.


كيفية تخزين محرك جافا سكريبت / ذاكرة stack و heap


تقوم محركات (JavaScript) بتخزين بياناتها في مكانين؛ ذاكرة (Stack) وذاكرة (Heap)، فيما يلي توضيح لكل منهما:





1. ذاكرة Stack


وهي نوع من بنية البيانات التي تستخدم طريقة (Last-in-First-out (LIFO)) لتخزين البيانات الثابتة، بسبب حجمها الثابت، والمعروف أثناء وقت الترجمة بواسطة المحرك فهي ذاكرة ثابتة، وتشتمل البيانات الثابتة في (JavaScript) على مراجع للكائنات والوظائف بالإضافة إلى القيم الأولية مثل: (strings, number, Boolean, null, undefined, symbol, BigInt).



2. ذاكرة Heap


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



ما المقصود بتسرب ذاكرة جافا سكريبت


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



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


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

2. حدث Forgotten timers


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

نَبض 13-Feb-2023 01:28 AM

رد: كيفية إدارة الذاكرة في جافا سكريبت
 
::

اختيار موفق
دام عطاءك

عشق 13-Feb-2023 11:54 AM

رد: كيفية إدارة الذاكرة في جافا سكريبت
 
سلمت الأيادي ..
ويعطيك العافية لـ جمال الآنتقاء
لروحك جنائن الورد

* السلطان * 13-Feb-2023 12:06 PM

رد: كيفية إدارة الذاكرة في جافا سكريبت
 
مرور

غالي

ربي

يسعدك

عطر المساء 13-Feb-2023 04:11 PM

رد: كيفية إدارة الذاكرة في جافا سكريبت
 
موضوع متميز
يعطيك العافية ولا عدمناك

الحر 14-Feb-2023 09:08 AM

رد: كيفية إدارة الذاكرة في جافا سكريبت
 
تسلم كفوفك ..
لطيب الجهد وَ تمُيز العطاء
لاحرمنا الله روائِع مجهوداتك
تقديري

غَيْم..! 14-Feb-2023 01:10 PM

رد: كيفية إدارة الذاكرة في جافا سكريبت
 
يعطيك الف عافية على الطرح
ل روحك الفرح ..

لحن 15-Feb-2023 02:03 AM

رد: كيفية إدارة الذاكرة في جافا سكريبت
 
_

يعطيك العافية
و دام عطائك و تميزك
تحيتي لك

رمق 25-Apr-2023 08:43 PM

رد: كيفية إدارة الذاكرة في جافا سكريبت
 
،



طرح جميل
انتقاء مميز
كل الشكر ،،

حـُـلم 11-Jul-2023 08:01 PM

رد: كيفية إدارة الذاكرة في جافا سكريبت
 

سلمت يمناك
الله يعطيك الف عافيه



الساعة الآن 08:33 PM

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. TranZ By Almuhajir
new notificatio by 9adq_ala7sas
HêĽм √ 3.2 OPS BY: ! ωαнαм ! © 2010

جميع ما يطرح في منتديات أحاسيس الليل لا يعبر عن رأي الموقع وإنما يعبر عن رأي الكاتب
وإننــے أبرأ نفســے أنا صاحبة الموقع أمامـ الله سبحانه وتعالــے من أــے تعارف بين الشاب والفتاة من خلال أحاسيس الليل
vEhdaa 1.1 by rKo ©2009