summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVicent Marti <tanoku@gmail.com>2013-04-03 23:53:32 +0200
committerVicent Marti <tanoku@gmail.com>2013-04-22 16:50:51 +0200
commitd9d423e4215ac3cc17def7b1a353d03031b811f8 (patch)
tree0e0dc0f2f69a3df5cad9340ee821149cc70c1a6e
parent064236ca45067c9a7189e0d30790b8f3541b91ad (diff)
downloadlibgit2-d9d423e4215ac3cc17def7b1a353d03031b811f8.tar.gz
Some stats
-rw-r--r--src/cache.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/cache.c b/src/cache.c
index c6e983597..f3ab8a684 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -28,6 +28,27 @@ size_t git_cache__max_object_size[8] = {
0 /* GIT_OBJ_REF_DELTA */
};
+void git_cache_dump_stats(git_cache *cache)
+{
+ git_cached_obj *object;
+
+ if (kh_size(cache->map) == 0)
+ return;
+
+ printf("Cache %p: %d items cached, %d bytes\n",
+ cache, kh_size(cache->map), (int)cache->used_memory);
+
+ kh_foreach_value(cache->map, object, {
+ char oid_str[9];
+ printf(" %s%c %s (%d)\n",
+ git_object_type2string(object->type),
+ object->flags == GIT_CACHE_STORE_PARSED ? '*' : ' ',
+ git_oid_tostr(oid_str, sizeof(oid_str), &object->oid),
+ (int)object->size
+ );
+ });
+}
+
int git_cache_init(git_cache *cache)
{
cache->used_memory = 0;