diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-03-14 12:34:58 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-03-14 12:34:58 +0000 |
commit | 1e0598be29be3f42809ea84303129ffe2301ef3c (patch) | |
tree | e960be7ae2c0bfb46e2cba75936244c8f5d0702a /vespalib/src | |
parent | 28ab766a23032cf35c3a124007775712a4fd033e (diff) |
Track static cache usage
Diffstat (limited to 'vespalib/src')
-rw-r--r-- | vespalib/src/vespa/vespalib/stllike/cache.h | 2 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/stllike/cache.hpp | 7 |
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); } |