Python3
200 subscribers
100 photos
6 videos
26 files
518 links
🎓 آموزش و پروژه‌های Python
آموزش‌های کاربردی و پروژه‌های عملی Python برای همه سطوح. 🚀
Download Telegram
📚 دوره آموزش پایتون از 0 تا 100

پارت ۱۸: مدیریت حافظه و Garbage Collection در پایتون 🗑️🧠

در این پارت با مدیریت حافظه و مکانیزم Garbage Collection (GC) در پایتون آشنا می‌شویم. مدیریت حافظه یکی از مفاهیم مهم در برنامه‌نویسی است که به بهینه‌سازی عملکرد برنامه کمک می‌کند.

۱. مدیریت حافظه در پایتون 🧠

پایتون به طور خودکار مدیریت حافظه را انجام می‌دهد، به این معنی که به شما اجازه می‌دهد تا روی نوشتن کد تمرکز کنید بدون اینکه نگرانی از مدیریت دستی حافظه داشته باشید.

- فضای حافظه: هر متغیری که تعریف می‌کنید، فضایی در حافظه اشغال می‌کند.
- هندلینگ خودکار: پایتون به طور خودکار حافظه را تخصیص داده و آزاد می‌کند.

۲. Garbage Collection در پایتون 🗑️

Garbage Collection فرآیندی است که حافظه اشغال‌شده توسط اشیاء غیرقابل‌دسترسی (غیرقابل‌استفاده) را آزاد می‌کند. پایتون دارای یک garbage collector داخلی است که به طور خودکار این فرآیند را مدیریت می‌کند.

۲.۱. اصول اولیه GC

- تخصیص حافظه: هنگامی که یک شیء جدید ایجاد می‌شود، پایتون حافظه موردنیاز را به آن اختصاص می‌دهد.
- جمع‌آوری زباله: هنگامی که یک شیء دیگر قابل‌دسترسی نیست، garbage collector آن را پیدا کرده و حافظه را آزاد می‌کند.

۲.۲. روش‌های GC در پایتون

پایتون از دو روش اصلی برای جمع‌آوری زباله استفاده می‌کند:
- مرجع‌سنجی: هر شیء دارای یک شمارنده مرجع است که تعداد مراجع به آن را نگهداری می‌کند. هنگامی که شمارنده به صفر می‌رسد، حافظه آزاد می‌شود.
- چرخه‌یابی: پایتون از الگوریتم چرخه‌یابی برای شناسایی و آزاد کردن چرخه‌های مرجع که در آن دو یا چند شیء به یکدیگر ارجاع می‌دهند و هرگز آزاد نمی‌شوند، استفاده می‌کند.

۲.۳. استفاده از ماژول gc

ماژول gc در پایتون امکان کنترل و مشاهده وضعیت GC را فراهم می‌کند.

import gc

# فعال‌سازی جمع‌آوری زباله
gc.enable()

# غیر فعال‌سازی جمع‌آوری زباله
gc.disable()

# انجام یک چرخه جمع‌آوری زباله به صورت دستی
gc.collect()

# مشاهده وضعیت جمع‌آوری زباله
print(gc.get_stats())

۳. بهینه‌سازی استفاده از حافظه

برای بهینه‌سازی حافظه در برنامه‌های پایتون، می‌توانید به نکات زیر توجه کنید:

- استفاده از متغیرها و اشیاء بهینه: متغیرها و اشیائی که دیگر نیاز ندارید را آزاد کنید.
- اجتناب از ایجاد چرخه‌های مرجع: چرخه‌های مرجع باعث می‌شوند که garbage collector نتواند حافظه را آزاد کند.
- پایش و پروفایل حافظه: از ابزارهای مختلفی مانند memory_profiler برای پایش و تحلیل مصرف حافظه استفاده کنید.

from memory_profiler import profile

@profile
def my_function():
a = [i for i in range(10000)]
b = {i: i for i in range(10000)}
return a, b

if name == 'main':
my_function()

نکات مهم
- مدیریت حافظه: پایتون به صورت خودکار مدیریت حافظه را انجام می‌دهد.
- جمع‌آوری زباله: پایتون از تکنیک‌های مرجع‌سنجی و چرخه‌یابی برای جمع‌آوری زباله استفاده می‌کند.
- بهینه‌سازی: بهینه‌سازی مصرف حافظه با استفاده از ابزارهای مختلف و تکنیک‌های مدیریت حافظه.

این آموزش به شما کمک می‌کند تا با مفاهیم مدیریت حافظه و Garbage Collection در پایتون آشنا شوید و بتوانید برنامه‌های بهینه‌تری بنویسید. موفق باشید! 🌟

🔻آموزش های مفید بیشتر اینجاست

#پایتون #آموزش_پایتون #مدیریت_حافظه #GarbageCollection #PythonMemoryManagement #PythonProgramming
👍3