محسن زارعی
محسن زارعی
خواندن ۱ دقیقه·۶ ماه پیش

مدیریت حافظه در جاوا اسکریپت

به طور کلی مدیریت حافظه توی جاوا اسکریپت توسط متور جاوا اسکریپت انجام میشه و کاربرا نیازی ندارن که به صورت دستی حافظه ای رو تخصیص بدن یا این که مدریریتش کنن

چرخه:

همه زبان های برنامه نویسی عموما شبیه هم عمل میکنن، که ما اینجا جاوا اسکریپت رو بررسی میکنیم:

1) اختصاص حافظه: حافظه رو به شی ایجاد شده اختصاص میده

2) استفاده از حافظه اختصاص داده شده

3) جمع آوری زباله: زمانی که چرخه حیاط شی به پایان رسید و از حافظه استفاده ای نمیشه یه زباله جمع کن که توی موتور وجود داره میاد و حافظه رو آزاد میکنه

موتورهای جاوا اسکریپت داده ها رو توی دو مکان ذخیره میکنن

  • استک (Stack): یه ساختاره داده ای که برای ذخیره داده های استاتیک استفاده میشه. داده های استاتیک به داده هایی گفته میشه که اندازه اونا توسط موتور مشخص شده و اندازه ثابتی دارن
  • هیپ (Heap): این نوع حافظه برای ذخیره اشیا و توابع استفاده میشه، متور مقدار ثابتی رو بهشون اختصاص نمیده به جاش اندازشون متغیره و در صورت نیاز فضای بیشتری بهشون داده میشه


داده‌ای که توی حافظه Stack و Heap ذخیره میشه چه فرقی دارن؟

استک (Stack):

  • مقدار های اولیه (Primitive) , مرجع (References) حافظه Heap
  • اندازه مشخص در زمان کامپایل
  • حافظه ثابتی بهشون اختصاص داده میشه

هیپ (Heap):

  • آبجت ها و توابع
  • اندازه تو زمان اجرا مشخص میشه
  • محدودیتی برای حافظه وجود نداره


یه مثال ببینیم از نحوه ذخیره داده توی این دو نوع حافظه!






جاوا اسکریپتstack and heap memoryحافظه
شاید از این پست‌ها خوشتان بیاید