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)

¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |