Ho un codice C++ dove devo implementare la sostituzione della cache usando la tecnica LRU.
Finora so due metodi per implementare LRU sostituzione della cache:Implementazione LRU nel codice di produzione
- Utilizzando timestamp per ogni volta che i dati memorizzati nella cache si accede e, infine, confrontando i timestamp al momento della sostituzione.
- Utilizzando una pila di elementi memorizzati nella cache e spostandoli verso l'alto se sono accessibili di recente, così alla fine il fondo conterrà la candidata LRU.
Quindi, quale di questi è meglio utilizzare nel codice di produzione?
I loro altri metodi migliori?
Cosa intendi per "migliore": devi specificare quali sono i tuoi criteri. Inoltre, dai un'occhiata a questa domanda http://stackoverflow.com/questions/1935777/c-design-how-to-cache-most-recent-used –
Invece di timestamp, puoi usare intero per tenere traccia. Quando si accede a un elemento, rendilo 0 e incrementa altre tracce – user
@user che sarebbe un design scarso perché renderebbe il costo di accesso 'O (n)' – Alnitak