From: Junio C Hamano Date: Thu, 20 Jun 2013 23:02:30 +0000 (-0700) Subject: Merge branch 'rs/discard-index-discard-array' X-Git-Tag: v1.8.4-rc0~159 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/08bcd774f497af594f16e545a04e2ad767cc850d?hp=8f0c843aab226225b8ef43e9b2e317bda5ea8f6d Merge branch 'rs/discard-index-discard-array' * rs/discard-index-discard-array: read-cache: free cache in discard_index read-cache: add simple performance test --- diff --git a/.gitignore b/.gitignore index 1640c3ad00..c0e00eb37b 100644 --- a/.gitignore +++ b/.gitignore @@ -191,6 +191,7 @@ /test-mktemp /test-parse-options /test-path-utils +/test-read-cache /test-regex /test-revision-walking /test-run-command diff --git a/Makefile b/Makefile index 0d2d0cdd3e..79f961ee4b 100644 --- a/Makefile +++ b/Makefile @@ -569,6 +569,7 @@ TEST_PROGRAMS_NEED_X += test-mergesort TEST_PROGRAMS_NEED_X += test-mktemp TEST_PROGRAMS_NEED_X += test-parse-options TEST_PROGRAMS_NEED_X += test-path-utils +TEST_PROGRAMS_NEED_X += test-read-cache TEST_PROGRAMS_NEED_X += test-regex TEST_PROGRAMS_NEED_X += test-revision-walking TEST_PROGRAMS_NEED_X += test-run-command diff --git a/read-cache.c b/read-cache.c index 5e30746886..b297addb57 100644 --- a/read-cache.c +++ b/read-cache.c @@ -1520,8 +1520,9 @@ int discard_index(struct index_state *istate) free_name_hash(istate); cache_tree_free(&(istate->cache_tree)); istate->initialized = 0; - - /* no need to throw away allocated active_cache */ + free(istate->cache); + istate->cache = NULL; + istate->cache_alloc = 0; return 0; } diff --git a/t/perf/p0002-read-cache.sh b/t/perf/p0002-read-cache.sh new file mode 100755 index 0000000000..9180ae9343 --- /dev/null +++ b/t/perf/p0002-read-cache.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +test_description="Tests performance of reading the index" + +. ./perf-lib.sh + +test_perf_default_repo + +count=1000 +test_perf "read_cache/discard_cache $count times" " + test-read-cache $count +" + +test_done diff --git a/test-read-cache.c b/test-read-cache.c new file mode 100644 index 0000000000..b25bcf139b --- /dev/null +++ b/test-read-cache.c @@ -0,0 +1,13 @@ +#include "cache.h" + +int main (int argc, char **argv) +{ + int i, cnt = 1; + if (argc == 2) + cnt = strtol(argv[1], NULL, 0); + for (i = 0; i < cnt; i++) { + read_cache(); + discard_cache(); + } + return 0; +}