From ea7ba042dfff72a01ca4e227f3337d98bd702166 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Sun, 4 Oct 2020 17:16:52 +0200 Subject: [PATCH] track the cache hit rate --- .../main/java/org/lucares/utils/cache/LRUCache.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pdb-utils/src/main/java/org/lucares/utils/cache/LRUCache.java b/pdb-utils/src/main/java/org/lucares/utils/cache/LRUCache.java index 24221bd..0cafcf1 100644 --- a/pdb-utils/src/main/java/org/lucares/utils/cache/LRUCache.java +++ b/pdb-utils/src/main/java/org/lucares/utils/cache/LRUCache.java @@ -6,6 +6,9 @@ import java.util.Map; public class LRUCache { private final LinkedHashMap cache; + private long countGet = 0; + private long countGetHits = 0; + public LRUCache(final int maxEntries) { this.cache = new LinkedHashMap<>(16, 0.75f, true) { private static final long serialVersionUID = 1L; @@ -21,7 +24,12 @@ public class LRUCache { } public V get(final K key) { - return cache.get(key); + final V result = cache.get(key); + countGet++; + if (result != null) { + countGetHits++; + } + return result; } public V remove(final K key) { @@ -32,4 +40,7 @@ public class LRUCache { return cache.size(); } + public double cacheHitRate() { + return (double) countGetHits / (double) countGet; + } }