From: Grigori Goronzy Date: Tue, 7 Jun 2011 16:45:18 +0000 (+0200) Subject: Add cache statistics X-Git-Tag: 0.10.0~84 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1a57533be4c4298edae0ca06f3984b48c6ec5e4f;p=libass Add cache statistics --- diff --git a/libass/ass_cache.c b/libass/ass_cache.c index c656a9e..e6dae0a 100644 --- a/libass/ass_cache.c +++ b/libass/ass_cache.c @@ -259,20 +259,17 @@ size_t ass_cache_empty(Cache *cache, size_t max_size) return 0; } -char *ass_cache_stats(Cache *cache) +void ass_cache_stats(Cache *cache, size_t *size, unsigned *hits, + unsigned *misses, unsigned *count) { - // FIXME: implement this correctly - printf("cache statistics: \n total accesses: %d\n hits: %d\n " - "misses: %d\n object count: %d\n size: %zd\n", - cache->hits + cache->misses, cache->hits, - cache->misses, cache->items, cache->cache_size); - - return "not implemented"; + *size = cache->cache_size; + *hits = cache->hits; + *misses = cache->misses; + *count = cache->items; } void ass_cache_done(Cache *cache) { - ass_cache_stats(cache); ass_cache_empty(cache, 0); free(cache->map); free(cache); diff --git a/libass/ass_cache.h b/libass/ass_cache.h index 01cf4ad..68449cf 100644 --- a/libass/ass_cache.h +++ b/libass/ass_cache.h @@ -61,7 +61,8 @@ Cache *ass_cache_create(HashFunction hash_func, HashCompare compare_func, void *ass_cache_put(Cache *cache, void *key, void *value); void *ass_cache_get(Cache *cache, void *key); size_t ass_cache_empty(Cache *cache, size_t max_size); -char *ass_cache_stats(Cache *cache); +void ass_cache_stats(Cache *cache, size_t *size, unsigned *hits, + unsigned *misses, unsigned *count); void ass_cache_done(Cache *cache); Cache *ass_font_cache_create(void); Cache *ass_glyph_cache_create(void);