aboutsummaryrefslogtreecommitdiffstats
path: root/vespalib/src
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-03-14 12:34:58 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2023-03-14 12:34:58 +0000
commit1e0598be29be3f42809ea84303129ffe2301ef3c (patch)
treee960be7ae2c0bfb46e2cba75936244c8f5d0702a /vespalib/src
parent28ab766a23032cf35c3a124007775712a4fd033e (diff)
Track static cache usage
Diffstat (limited to 'vespalib/src')
-rw-r--r--vespalib/src/vespa/vespalib/stllike/cache.h2
-rw-r--r--vespalib/src/vespa/vespalib/stllike/cache.hpp7
2 files changed, 7 insertions, 2 deletions
diff --git a/vespalib/src/vespa/vespalib/stllike/cache.h b/vespalib/src/vespa/vespalib/stllike/cache.h
index b823d0001ea..907fbdd54c9 100644
--- a/vespalib/src/vespa/vespalib/stllike/cache.h
+++ b/vespalib/src/vespa/vespalib/stllike/cache.h
@@ -127,7 +127,7 @@ public:
protected:
using UniqueLock = std::unique_lock<std::mutex>;
- UniqueLock getGuard();
+ UniqueLock getGuard() const;
void invalidate(const UniqueLock & guard, const K & key);
bool hasKey(const UniqueLock & guard, const K & key) const;
private:
diff --git a/vespalib/src/vespa/vespalib/stllike/cache.hpp b/vespalib/src/vespa/vespalib/stllike/cache.hpp
index 9abd4a5e91f..8e449fcfca4 100644
--- a/vespalib/src/vespa/vespalib/stllike/cache.hpp
+++ b/vespalib/src/vespa/vespalib/stllike/cache.hpp
@@ -66,6 +66,11 @@ template< typename P >
MemoryUsage
cache<P>::getStaticMemoryUsage() const {
MemoryUsage usage;
+ auto cacheGuard = getGuard();
+ usage.incAllocatedBytes(sizeof(*this));
+ usage.incAllocatedBytes(Lru::capacity()*sizeof(typename Lru::value_type));
+ usage.incUsedBytes(sizeof(*this));
+ usage.incUsedBytes(Lru::size()*sizeof(typename Lru::value_type));
return usage;
}
@@ -81,7 +86,7 @@ cache<P>::removeOldest(const value_type & v) {
template< typename P >
std::unique_lock<std::mutex>
-cache<P>::getGuard() {
+cache<P>::getGuard() const {
return UniqueLock(_hashLock);
}