Civil & Strukturell teknik
Praktisk guide för att genomföra minsta nyligen använda (lru) Cache Replacement Policies
Table of Contents
Genomföra en LRU-cache ersättningspolicy hjälper till att optimera minnesanvändningen genom att ta bort de minst nyligen nådda objekten när cache når sin kapacitet. Denna guide ger praktiska steg för att utveckla en LRU-cache i olika programmeringsmiljöer.
Förstå LRU Cache
En LRU (Least Recently Used) cache håller reda på objektanvändning för att bestämma vilka data som ska vecklas när utrymme behövs. Det prioriterar nyligen nådda objekt, vilket säkerställer att ofta använda data finns tillgängliga.
Kärnkomponenter av en LRU Cache
En effektiv LRU-cache kombinerar vanligtvis två datastrukturer:
- ]Hash Map:] ger snabb tillgång till cache-objekt.
- Doubly Linked List:] behåller ordningen för objektanvändning, med den senaste på framsidan.
Implementeringssteg
Följ dessa steg för att genomföra en LRU-cache:
- Initiera hashkartan och dubbelt länkad lista.
- Vid dataåtkomst, flytta objektet till framsidan av listan.
- Om cache överstiger kapaciteten, ta bort objektet i slutet av listan.
- Uppdatera hashkartan i enlighet med detta under införanden och raderingar.
Provbildning i Python
Här är ett enkelt exempel på en LRU-cache i Python:
]Observera:[] Denna kod använder samlingsmodulen för OrderedDict, som förenklar implementeringen.
^ ^ § | python
från samlingar import OrderedDict
klass LRUCache:
Def init (själv, kapacitet):
self.cache = OrderedDict()
self.capacity = kapacitet
Def get(själv, nyckel):
Om nyckeln inte i self.cache:
returnera -1
self.cache.move to end (nyckel)
Återgå själv.cache [Key]
Def put(själv, nyckel, värde):
self.cache [key] = värde
self.cache.move to end (nyckel)
om len(self.cache) > self.capacity:
self.cache.popitem(last=False)
¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |