Implementação de LRU em código de produção

Eu tenho algum código C ++ onde eu preciso implementar a substituição de cache usando a técnica LRU.
Até agora eu sei dois métodos para implementar a substituição de cache LRU:

Usando timeStamp para cada vez que os dados em cache são acessados ​​e, finalmente, comparando os timeStamps no momento da substituição.Usando uma pilha de itens em cache e movendo-os para o topo se eles forem acessados ​​recentemente, então, finalmente, a parte inferior conterá o Candidato LRU.

Então, qual destes é melhor para ser usado no código de produção?
São seus outros métodos melhores?

questionAnswers(5)

yourAnswerToTheQuestion