Table of Contents
پیاده سازی یک سیاست جایگزین حافظه LRU به بهینه سازی استفاده از حافظه با حذف حداقل موارد به تازگی قابل دسترسی زمانی که حافظه به ظرفیت آن می رسد کمک می کند.این راهنما گام های عملی برای توسعه یک حافظه LRU در محیط های مختلف برنامه نویسی فراهم می کند.
درک راز LRU
یک حافظه LRU (به تازگی مورد استفاده قرار گرفته) استفاده از آیتم را برای تعیین اینکه چه داده هایی برای دفع فضا مورد نیاز است، به تازگی به موارد دسترسی پیدا می کند و اطمینان حاصل می کند که اغلب داده های مورد استفاده در دسترس باقی می ماند.
اجزای اصلی یک LRU cache
یک حافظه LRU موثر معمولا دو ساختار داده را ترکیب می کند:
- [در این باره] دسترسی سریع به اقلام کش را فراهم می کند.
- [در این باره] [در قرآن] به شرح زیر اشاره شده است: [[۱]] [۱۰] [۱] [۱۰] [۱] [۱۰] [۱] [۱] [۱۰] [۱] [۱۰] [۱] [۱۰] [۱] [۱۰] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۳] [۳] [۱] [۳] [۳] [۳] [۳] [۳] [۱] [۱] [۱] [۳]]] [۱] [۳]] [۳] [۳] [۱]]]] [۱]]]]] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [براى [۳] [براى [۳] [۳] [براى [براى [براى [براى [براى [براى [۳] [۳] [براى [براى [براى [براى [براى [براى [براى
مراحل پیاده سازی
این مراحل را برای پیاده سازی یک کش LRU دنبال کنید:
- ابتدا نقشه هش را شروع کنید و لیست لینک شده را به صورت دو برابر کنید.
- در دسترسی به داده ها، آیتم را به سمت جلو لیست حرکت دهید.
- اگر حافظه بیش از ظرفیت باشد، آیتم را در انتهای لیست حذف کنید.
- به روز رسانی نقشه هش بر اساس در هنگام قرار دادن و حذف.
پیاده سازی نمونه در پایتون
در اینجا یک مثال ساده از یک حافظه LRU در پایتون وجود دارد:
توجه: این کد از ماژول مجموعه برای سفارش داده شده استفاده می کند، که ساده سازی پیاده سازی.
⁇ python
مجموعه های واردات
کلاس LRUCache:
د- خود، ظرفیت:
خود-cache = OrderedDict()
خود اشتغال = ظرفیت
دج (خود، کلید):
اگر کلید نه در خود درد:
بازگشت -1
خود.move to end (key)
بازگشت به خود
دِفِد (خود، کلید، ارزش):
خود درد[key] = ارزش
خود.move to end (key)
اگر خود را به خودی خود و فریب دهید، خود را
خود درد (آخرین=False)
⁇ ⁇