commit cadc72f05df58d52f4654d58b4e07093d69c6422 from: Stefan Sperling via: Thomas Adam date: Tue Aug 30 18:37:47 2022 UTC keep track of the size of the largest object which entered an object cache commit - 30b23f546456233c0030505bdc72ed107f30cb48 commit + cadc72f05df58d52f4654d58b4e07093d69c6422 blob - b3a2cb74d16eb1cea91ea7e995e998721d06f5fc blob + ef9737b133c279be1e1781fc0b8145a641d1fc30 --- lib/got_lib_object_cache.h +++ lib/got_lib_object_cache.h @@ -42,6 +42,7 @@ struct got_object_cache { int cache_miss; int cache_evict; int cache_toolarge; + size_t max_cached_size; }; const struct got_error *got_object_cache_init(struct got_object_cache *, blob - c040c48573c53032a2213eea793817ec8f0b8598 blob + b42ee27e74fde47ef3bc23fbbadddb8a37804c72 --- lib/object_cache.c +++ lib/object_cache.c @@ -257,6 +257,8 @@ got_object_cache_add(struct got_object_cache *cache, s err = got_object_idset_add(cache->idset, id, ce); if (err) free(ce); + else if (size > cache->max_cached_size) + cache->max_cached_size = size; return err; } @@ -292,10 +294,12 @@ static void print_cache_stats(struct got_object_cache *cache, const char *name) { fprintf(stderr, "%s: %s cache: %d elements, %d searches, %d hits, " - "%d missed, %d evicted, %d too large\n", getprogname(), name, + "%d missed, %d evicted, %d too large, max cached %zd bytes\n", + getprogname(), name, got_object_idset_num_elements(cache->idset), cache->cache_searches, cache->cache_hit, - cache->cache_miss, cache->cache_evict, cache->cache_toolarge); + cache->cache_miss, cache->cache_evict, cache->cache_toolarge, + cache->max_cached_size); } static const struct got_error *