آشنایی با گاربیج کالکتور پایتون


آشنایی با گاربیج کالکتور پایتون


زمانی که ما یک آبجکت را از روی یک کلاس نمونه سازی می کنیم یا یک متغیر جدید در برنامه ی خود تعریف می کنیم، مفسر پایتون بخشی از حافظه ی دستگاه را برای ذخیره سازی آبجکت مد نظر و یا متغیر جدید اختصاص می دهد. همان طور که می دانید، حافظه ی یک دستگاه کامپیوتر هر چقدر هم که زیاد باشد نامحدود نیست؛ بنابراین تعداد آبجکت ها و متغیرهایی که می‌توان در یک برنامه نمونه سازی کرد باید محدود باشد که این موضوع به خصوص در برنامه های بزرگ می‌تواند باعث بروز مشکل شود.

طراحان زبان پایتون برای حل این مشکل از مفهوم گاربیج کالکتور که در بسیاری از زبان‌های برنامه نویسی مانند جاوا به کار گرفته می‌شود استفاده کرده اند. پایتون به صورت خودکار آبجکت هایی را که دیگر در برنامه مورد استفاده قرار نمی‌گیرند از حافظه ی سیستم پاک می‌کند تا فضای حافظه را برای اختصاص به سایر آبجکت ها آزاد کند.

فرآیندی را که پایتون به صورت دوره ای برای پاک کردن حافظه از آبجکت های اضافی اجرا می‌کند اصطلاحاَ Garbage Collection (گاربیج کالکشن یا جمع آوری زباله ها) نامیده می‌شود. گاربیج کالکتور پایتون در طول اجرای برنامه به کار می‌افتد و زمانی که تعداد دفعات استفاده از یک آبجکت یا به عبارت دیگر مرجع قرار گرفتن هر آبجکت به صفر می‌رسد، آن را از حافظه ی سیستم پاک می‌کند.

به طور طبیعی برنامه نویسان متوجه نمی‌شوند که چه زمانی گاربیج کالکتور پایتون یک آبجکت را از حافظه ی سیستم پاک می‌کند؛ اما متدی خاصی در هر کلاس پایتون پیاده سازی شده است که در زمان نابود کردن یک آبجکت و پاک کردن آن از حافظه فراخوانی می‌شود که این متد destructor نامیده می شود و با شناسه ی ()__del__ مشخص می شود و درست قبل از پاک کردن آبجکتی که بدون استفاده مانده است و بخشی از حافظه ی دستگاه را بی دلیل به خود اختصاص داده است فراخوانده می‌شود.

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