(سجآده حمراء وأرائـك الهطول# حصريآت ال روآية عشق)  
 
 

العودة   منتدى رواية عشق > ϟ الأقسَــام التِقنيّـــة ϟ > ϟ تَطويـر المُنتديـات ϟ

ϟ تَطويـر المُنتديـات ϟ قِسم الهاكَات، والاستَايلات وإضافة مُنتديات وتقديم المُساعدات لِتطويرها .

 
 
أدوات الموضوع انواع عرض الموضوع
#1  
قديم 02-03-2023
Şøķåŕą متواجد حالياً
Egypt     Female
قَدَاسَة طُهِّرَ | | أَوْسِمَتِي | |
 
 عضويتي » 8
 اشراقتي ♡ » May 2017
 كُـنتَ هُـنا » منذ دقيقة واحدة (07:08 AM)
آبدآعاتي » 12,506,265
 تقييمآتي » 2510665
 حاليآ في » ☆❤️. أعيش على. حب الله ♡☆
دولتي الحبيبه » دولتي الحبيبه Egypt
جنسي  »  Female
 حالتي الآن »
آلعمر  » ❤
الحآلة آلآجتمآعية  » عزباء 😄
تم شكري »  1,882
شكرت » 1,795
مَزآجِي  »  1
мч ммѕ ~
MMS ~
 
Q70 كيفية إدارة الذاكرة في جافا سكريبت



في لغة البرمجة (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)) لإلغاء الفاصل الزمني بعد استخدامه.



 توقيع : Şøķåŕą





رد مع اقتباس
 

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
جافا سكريبت Şøķåŕą ϟ تَطويـر المُنتديـات ϟ 33 منذ أسبوع واحد 01:08 AM
كيف تتعلم لغة البرمجة جافا سكريبت JavaScript Şøķåŕą ϟ تَطويـر المُنتديـات ϟ 61 منذ 2 أسابيع 12:46 PM
ما هي أنواع مترجمات الأكواد في جافا سكريبت Şøķåŕą ϟ تَطويـر المُنتديـات ϟ 75 منذ 4 أسابيع 10:58 PM
ما هي أنماط التصميم البرمجي في جافا سكريبت Şøķåŕą ϟ تَطويـر المُنتديـات ϟ 35 منذ 4 أسابيع 10:58 PM
كائنات البحث والتجريد في لغة البرمجة جافا سكريبت Şøķåŕą ϟ تَطويـر المُنتديـات ϟ 32 02-15-2025 01:08 PM


الساعة الآن 07:09 AM


Powered by vBulletin Hosting By R-ESHQ
HêĽм √ 3.1 BY: ! RESHQ ! © 2010
new notificatio by R-ESHQ
User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
تنويه : المشاركات المطروحة تعبر عن وجهة نظر أصحابها وليس بالضرورة تمثل رأي أدارة الموقع