Dites que j'ai une application qui essaie de relier une chaîne avec un int. Il y a beaucoup de chaînes et je veux garder une liste des N qui ont eu lieu.Cache LRU pondéré. Y a-t-il un nom pour cette méthodologie?
Par exemple, disent les chaînes ressemblait à ceci:
item 0 = "Foo"
item 1 = "Foo"
item 2 = "Boo"
item 3 = "Boo"
item 4 = "Bar"
item 5 = "Sar"
Dis mon cache a un plafond de 3. Voici comment je veux qu'il comporte:
item 0 = TryGet "Foo" - Add. "Foo" occurrences = 1
item 1 = TryGet "Foo" - return. "Foo" occurrences = 2
item 2 = TryGet "Boo" - Add. "Boo" occurrences = 1
item 3 = TryGet "Boo" - return. "Boo" occurrences = 2
item 4 = TryGet "Bar" - Add. "Bar" occurrences = 1
item 5 = TryGet "Sar" - At capacity. Remove elem with lowest occurrences, "Bar". Add "Sar"
Ainsi, chaque élément de cache en cours obtient un poids et à la découverte d'un nouvel objet quand il est plein, nous rejetons l'élément avec le plus petit nombre d'occurrences get. Y a-t-il un nom pour ce genre d'algorithme de mise en cache?
EDIT: Je cherchais les moins fréquemment utilisés
https://en.wikipedia.org/wiki/Cache_replacement_policies#Least-Frequently_Used_.28LFU.29
est-ce pas précisément ce que [MRU] (https: // fr .wikipedia.org/wiki/Cache_replacement_policies # Least_Recently_Used_.28LRU.29) (le terme que vous utilisez vous-même) signifie? –
@ 500-InternalServerError: le cache souhaité de l'OP utilise une politique d'expulsion la moins fréquemment utilisée. Un cache LRU expulse le moins * récemment * utilisé. –
Vous recherchez un cache LFU (moins fréquemment utilisé): https://en.wikipedia.org/wiki/Cache_replacement_policies#Least-Frequently_Used_.28LFU.29 –