💡 کلاس WeakMap در PHP: قهرمان خاموش برای مدیریت حافظه
در زمان توسعه بخشهای پرفورمنسمحور یک اپلیکیشن، متوجه شدم که WeakMap میتونه یه قهرمان خاموش باشه که زمانی که بهش نیاز داری، به دادت میرسه.
🔍 کلاس WeakMap چیست؟
در ظاهر، WeakMap مثل یه store کلید-مقدار عادی به نظر میاد. اما تفاوت اصلی اینجاست که WeakMap کلیدها رو به صورت weak reference نگه میداره، یعنی وقتی شی از حافظه پاک میشه، WeakMap بهطور خودکار اون ورودی رو حذف میکنه. این ویژگی باعث میشه که نیازی به پاکسازی دستی دادهها نباشه و هیچگونه حافظهای به طور نادرست مصرف نشه.
📌 چرا این ویژگی اهمیت داره؟
فرض کنید در حال ساخت یک مدیریت مستندات یا مدیریت تصاویر هستید. هر شی (مثل یک فایل یا تصویر) ممکنه متادیتای پرهزینهای برای محاسبه داشته باشه. میخواهید این متادیتا رو در هنگام استفاده از شی کش کنید ولی نیازی به پاکسازی دستی و نگرانی از نشت حافظه ندارید.
🛠 نمونه کد:
در کدی که در تصویر مشاهده میکنید . ما از WeakMap برای کش کردن متادیتای اشیاء استفاده میکنیم
🚀 نتیجهگیری
در نتیجه WeakMap برای مواردی مثل مدیریت کش متادیتا یا پردازشهای پرهزینه بسیار مفیده، چرا که از نشت حافظه جلوگیری میکنه و با خودکار حذف کردن ورودیها از حافظه، کار رو برای برنامهنویس راحتتر میکنه.
🔗 منبع: مقاله
#PHP #MemoryManagement #WeakMap #Cashing #Development #Backend #OptimizedCode
@panicdev
در زمان توسعه بخشهای پرفورمنسمحور یک اپلیکیشن، متوجه شدم که WeakMap میتونه یه قهرمان خاموش باشه که زمانی که بهش نیاز داری، به دادت میرسه.
🔍 کلاس WeakMap چیست؟
در ظاهر، WeakMap مثل یه store کلید-مقدار عادی به نظر میاد. اما تفاوت اصلی اینجاست که WeakMap کلیدها رو به صورت weak reference نگه میداره، یعنی وقتی شی از حافظه پاک میشه، WeakMap بهطور خودکار اون ورودی رو حذف میکنه. این ویژگی باعث میشه که نیازی به پاکسازی دستی دادهها نباشه و هیچگونه حافظهای به طور نادرست مصرف نشه.
📌 چرا این ویژگی اهمیت داره؟
فرض کنید در حال ساخت یک مدیریت مستندات یا مدیریت تصاویر هستید. هر شی (مثل یک فایل یا تصویر) ممکنه متادیتای پرهزینهای برای محاسبه داشته باشه. میخواهید این متادیتا رو در هنگام استفاده از شی کش کنید ولی نیازی به پاکسازی دستی و نگرانی از نشت حافظه ندارید.
🛠 نمونه کد:
در کدی که در تصویر مشاهده میکنید . ما از WeakMap برای کش کردن متادیتای اشیاء استفاده میکنیم
🚀 نتیجهگیری
در نتیجه WeakMap برای مواردی مثل مدیریت کش متادیتا یا پردازشهای پرهزینه بسیار مفیده، چرا که از نشت حافظه جلوگیری میکنه و با خودکار حذف کردن ورودیها از حافظه، کار رو برای برنامهنویس راحتتر میکنه.
🔗 منبع: مقاله
#PHP #MemoryManagement #WeakMap #Cashing #Development #Backend #OptimizedCode
@panicdev
👍11🔥2