Heap memory چیست؟

با عرض سلام و احترام خدمت دوستان کد ایتی عزیز.در ادامه سری آموزش های جاوا اسکریپت این جلسه ما در رابطه با  سوال  Heap memory چیست؟ بحث خواهیم کرد. با ما همراه باشید.

Heap memory چیست؟

Heap ها نواحی حافظه ای هستند که به هر برنامه اختصاص داده شده اند. حافظه تخصیص داده شده به هیپ ها را می توان به صورت پویا تخصیص داد، برخلاف حافظه اختصاص داده شده به پشته ها.

در نتیجه، هر زمان که برنامه به آن نیاز داشت، می توان بخش heap را درخواست کرد و آزاد کرد. این حافظه نیز سراسری است، به این معنی که به جای اینکه بوسیله تابعی که در آن تخصیص داده شده باشد، می توان از هر کجای برنامه که به آن اختصاص داده شده است، به آن دسترسی پیدا کرد و آن را تغییر داد. حافظه تخصیص یافته پویا با استفاده از «اشاره‌گرها» ارجاع می‌شود، که به نوبه خود منجر به کاهش جزئی عملکرد نسبت به استفاده از متغیرهای محلی (در پشته) می‌شود.

حافظه هیپ به عنوان  “dynamic” memory (حافظه پویا )نیز شناخته می شود.

مموزی هیپ با حافظه پشته محلی ، نه تنها در نحوه تخصیص و توزیع متغیرها هنگام فراخوانی تابع، بلکه در نحوه توزیع متغیر هنگام خروج تابع نیز متفاوت است. این “بلوک” حافظه معمولاً به طور خودکار با توجه به اندازه شیئی که ایجاد می کنند تعیین می شود.

مزایای حافظه هیپ

  • Heap هیچ محدودیتی در اندازه حافظه ندارد.
  • این به شما امکان می دهد به متغیرها در سطح سراسری دسترسی داشته باشید.
  • جمع آوری زباله روی heap memory اجرا می شود تا حافظه مورد استفاده شی را آزاد کند.
  • روش heap نیز در صف اولویت استفاده می شود.

معایب heap memory

  • زمان زیادی برای اجرا در مقایسه با پشته نیاز دارد.
  • زمان بیشتری برای محاسبه نیاز دارد.
  • این می تواند حداکثر حافظه ای را که یک سیستم عامل می تواند فراهم کند را فراهم نماید.
  • مدیریت حافظه در heap memory پیچیده تر است زیرا در سطح سراسری استفاده می شود.

مشکلاتی که با مموری هیپ قابل حل هستند

در ادامه به چند نکته مهم در مورد جمع آوری زباله اشاره می شود.

  • ماشین مجازی جاوا جمع آوری زباله را فراخوانی می کند تا از شر اشیاء حافظه heap استفاده نشده خلاص شود. هر شی که دیگر توسط برنامه جاوا در حال اجرا استفاده نمی شود را حذف می کند. در این فرآیند، حافظه بلااستفاده برای سایر اشیاء جدید برای استفاده آزاد می شود.
  • Garbage collection متد ()finalize یک شی را قبل از حذف آن از حافظه و دادن فرصتی برای پاکسازی فراخوانی می کند. اگر برنامه نویس این روش را لغو نکند، متد نهایی سازی پیش فرض فراخوانی می شود (روشی که در کلاس Object تعریف شده است).
  • جمع آوری زباله بر اساس اندازه حافظه تخصیص یافته پویا از هیپ فراخوانی می شود. کند و پیش بینی آن سخت است. برنامه هایی با محدودیت های عملکرد زمان واقعی ممکن است تشخیص این عملیات را دشوار بدانند.

خب دوستان عزیز به پایان مقاله Heap memory چیست؟ رسیدیم امیدواریم این مقاله برای شما مفید واقع گرفته شده باشد.

سایر مقالات:

break و continue در جاوا اسکریپت

تفاوت بین document load و DOMContentLoaded در جاوا اسکریپت

برای امتیاز به این نوشته کلیک کنید!
[کل: 2 میانگین: 5]
اشتراک‌گذاری

علی فرجی هستم، برنامه نویس جاوا اسکریپت و ریکت با بیش از 5 سال تجربه. من عاشق برنامه نویسیم و همیشه به دنبال یادگیری چیزهای جدید هستم.همچنین یکی از بنیانگذار های سایت کدایت ، یک سایت آموزش برنامه نویسی در حوزه جاوا اسکریپت، ریکت، اندروید و ... هستم. امیدوارم بتوانم با دانش و تجربه خود به سایر برنامه نویسان کمک کنم تا در این زمینه پیشرفت کنند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *