Tengo un código C++ en el que necesito implementar el reemplazo de caché mediante la técnica LRU.
Hasta ahora sé dos métodos para implementar LRU reemplazo de caché:Implementación de LRU en el código de producción
- El uso de marca de tiempo para cada vez que se accede a los datos en caché y, finalmente, la comparación de las marcas de tiempo en el momento de la sustitución.
- Usando una pila de elementos almacenados en la memoria caché y moviéndolos a la parte superior si se accede recientemente, finalmente la parte inferior contendrá el LRU Candidato.
Entonces, ¿cuál de estos es mejor usar en el código de producción?
¿Hay algún otro método mejor?
Qué quiere decir con "mejor" - tiene que especificar cuáles son sus criterios. Además, eche un vistazo a esta pregunta http://stackoverflow.com/questions/1935777/c-design-how-to-cache-most-recent-used –
En lugar de timestamp, puede usar enteros para realizar un seguimiento. Cuando se accede a un elemento, hazlo 0 e incrementa otras pistas – user
@usuario que sería un diseño deficiente porque haría que el costo de acceso sea 'O (n)' – Alnitak