LRU-Implementierung in Produktionscode

Ich habe einige C ++ - Code, wo ich Cache-Ersatz mit LRU-Technik implementieren müssen.
Bisher kenne ich zwei Methoden zum Implementieren des LRU-Cache-Austauschs:

Verwenden von timeStamp für jeden Zugriff auf die zwischengespeicherten Daten und abschließendes Vergleichen der timeStamps zum Zeitpunkt des Ersetzens.Verwenden Sie einen Stapel zwischengespeicherter Elemente, und verschieben Sie sie nach oben, wenn Sie vor kurzem darauf zugegriffen haben. Schließlich enthält die Unterseite den LRU-Kandidaten.

Welches davon ist also besser für den Seriencode geeignet?
Gibt es noch andere bessere Methoden?