summaryrefslogtreecommitdiff
path: root/t/helper
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-08-27 05:55:08 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-08-27 05:55:08 (GMT)
commit030faf2fa55d938db006125d4f3db41115c31d37 (patch)
treecf88a0432a1bd4cc27b4cfaea3ef03401ce09e92 /t/helper
parent614ea03a71e6b5281d7fce9f073c091772145047 (diff)
parentce012deb98650b5b7bba58d534fed27628e34234 (diff)
downloadgit-030faf2fa55d938db006125d4f3db41115c31d37.zip
git-030faf2fa55d938db006125d4f3db41115c31d37.tar.gz
git-030faf2fa55d938db006125d4f3db41115c31d37.tar.bz2
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.c23
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 0000000..b7ee039
--- /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;
+}