summaryrefslogtreecommitdiff
path: root/t/perf
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2017-08-26 22:55:08 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-08-26 22:55:08 -0700
commit030faf2fa55d938db006125d4f3db41115c31d37 (patch)
treecf88a0432a1bd4cc27b4cfaea3ef03401ce09e92 /t/perf
parentMerge branch 'bw/submodule-config-cleanup' (diff)
parentread-cache: avoid allocating every ondisk entry when writing (diff)
downloadtgif-030faf2fa55d938db006125d4f3db41115c31d37.tar.xz
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/perf')
-rwxr-xr-xt/perf/p0007-write-cache.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/t/perf/p0007-write-cache.sh b/t/perf/p0007-write-cache.sh
new file mode 100755
index 0000000000..261fe92fd9
--- /dev/null
+++ b/t/perf/p0007-write-cache.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+test_description="Tests performance of writing the index"
+
+. ./perf-lib.sh
+
+test_perf_default_repo
+
+test_expect_success "setup repo" '
+ if git rev-parse --verify refs/heads/p0006-ballast^{commit}
+ then
+ echo Assuming synthetic repo from many-files.sh
+ git config --local core.sparsecheckout 1
+ cat >.git/info/sparse-checkout <<-EOF
+ /*
+ !ballast/*
+ EOF
+ else
+ echo Assuming non-synthetic repo...
+ fi &&
+ nr_files=$(git ls-files | wc -l)
+'
+
+count=3
+test_perf "write_locked_index $count times ($nr_files files)" "
+ test-write-cache $count
+"
+
+test_done