Sibil & Inhinyeriyang Pampasabog
Praktikal na Patnubay sa Pag - aalis ng Latab Kamakailang Ginamit (lru) Cache Replacement Policies
Table of Contents
Ang pag-implement ng isang patakaran ng LRU cache replacement ay tumutulong upang maging lubos na mahusay ang paggamit ng memory sa pamamagitan ng pagtanggal ng hindi bababa sa mga kamakailang magagamit na mga bagay kapag naabot na ng cache. ang guide na ito ay nagbibigay ng praktikal na mga hakbang upang makagawa ng isang LRU cache sa iba't ibang mga kapaligirang pamprograma.
Pag-unawa sa LRU Cach
Isang imbakan ng LRU (Least Kamakailang Ginagamit) ang sumusubaybay sa gamit ng isang bagay upang matiyak kung aling impormasyon ang makukuha kapag kailangan ang espasyo.
Mga Komponente ng Isang LRU Cach
Karaniwan nang pinagsasama ng isang mabisang imbakan ng LRU ang dalawang data istruktura:
- [Hash Mapa: Naglalaan ng mabilisang pagkuha ng mga bagay na may cache.
- [[Talaksan: Pinananatili ang pagkakasunud-sunod ng paggamit ng isang bagay, na may pinaka-kamakabagong sa unahan.
Mga Hakbang sa Pag - iisa
Sundin ang mga hakbang na ito upang ipatupad ang isang imbakan ng LRU:
- I - una ang hash map at doubly linked list.
- Sa data access, ilipat ang bagay sa unahan ng listahan.
- Kung ang cache ay nakahihigit sa kapasidad, alisin ang bagay sa dulo ng listahan.
- I-update ang hash map alinsunod sa panahon ng inklusiyon at delections.
Sampletong Pagpapawalang - bisa sa Python
Narito ang isang simpleng halimbawa ng isang imbakan ng LRU sa Python:
Note: Ginagamit ng kodigong ito ang koleksiyong module para sa OrdendDict, na siyang nagpapasimple sa pagpapatupad.
```Sopython
mula sa pag - aangkat ng mga koleksiyon na may Kaayusan
Sakit ng klase LRUC:
def init ):
sarili.cache = OrderedDict()
sarili.capacity = kapasidad
def gove(sarili, susi):
Kung hindi susi sa sarili.
bumalik -1
sarili.cache.move to end(key)
Nagbabalik ng sarili.[key]
def:
sarili.cache[key] = halaga
sarili.cache.move to end(key)
kung len(sarili.cache) gt; sarili.capacity:
sarili.cache.popitem(last= Worst)
````