J'ai un projet logiciel qui crée une série de valeurs d'empreinte digitale (hash) à partir d'objets de taille variable. Plus la taille de l'objet est grande, plus le calcul du hachage est coûteux. Les hachages sont utilisés à des fins de comparaison. Je souhaite maintenant mettre en cache les valeurs de hachage afin d'améliorer les performances des comparaisons suivantes. Pour toute entrée donnée dans le cache, je les disponibles métriques suivantes:algorithme de remplacement d'entrée de cache
- nombre de succès
- date de dernière modification/heure
- taille de l'objet haché
donc à ma question. Étant donné le besoin de restreindre la taille du cache (en le limitant à un nombre spécifique d'entrées), qu'est-ce qu'une approche équilibrée pour remplacer les éléments du cache? De toute évidence, les objets plus gros coûtent plus cher au hachage et doivent donc être conservés aussi longtemps que possible. Cependant, je veux éviter une situation où peupler le cache avec une grande quantité d'objets volumineux empêchera les éléments futurs (plus petits) d'être mis en cache. Donc, en me basant sur les métriques disponibles (voir ci-dessus), je cherche une bonne "formule" générale pour expirer (enlever) les entrées de cache quand le cache est plein.
Toutes les pensées, commentaires sont appréciés.
Avez-vous ou pouvez-vous obtenir l'horodatage lors du dernier accès à l'entrée? – Erik
Oui, "last mod" est mis à jour lorsque l'entrée est également accessible. – MER