diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-08-26 22:55:08 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-08-26 22:55:08 -0700 |
commit | 030faf2fa55d938db006125d4f3db41115c31d37 (patch) | |
tree | cf88a0432a1bd4cc27b4cfaea3ef03401ce09e92 /t/helper | |
parent | 614ea03a71e6b5281d7fce9f073c091772145047 (diff) | |
parent | ce012deb98650b5b7bba58d534fed27628e34234 (diff) | |
download | git-030faf2fa55d938db006125d4f3db41115c31d37.tar.gz |
Merge branch 'kw/write-index-reduce-alloc'
We used to spend more than necessary cycles allocating and freeing
piece of memory while writing each index entry out. This has been
optimized.
* kw/write-index-reduce-alloc:
read-cache: avoid allocating every ondisk entry when writing
read-cache: fix memory leak in do_write_index
perf: add test for writing the index
Diffstat (limited to 't/helper')
-rw-r--r-- | t/helper/test-write-cache.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/t/helper/test-write-cache.c b/t/helper/test-write-cache.c new file mode 100644 index 0000000000..b7ee039669 --- /dev/null +++ b/t/helper/test-write-cache.c @@ -0,0 +1,23 @@ +#include "cache.h" +#include "lockfile.h" + +static struct lock_file index_lock; + +int cmd_main(int argc, const char **argv) +{ + int i, cnt = 1, lockfd; + if (argc == 2) + cnt = strtol(argv[1], NULL, 0); + setup_git_directory(); + read_cache(); + for (i = 0; i < cnt; i++) { + lockfd = hold_locked_index(&index_lock, LOCK_DIE_ON_ERROR); + if (0 <= lockfd) { + write_locked_index(&the_index, &index_lock, COMMIT_LOCK); + } else { + rollback_lock_file(&index_lock); + } + } + + return 0; +} |