mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
perf: add test for writing the index
A performance test for writing the index to be able to determine if changes to allocating ondisk structure help. Signed-off-by: Kevin Willford <kewillf@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
b3622a4ee9
commit
3921a0b3c3
1
Makefile
1
Makefile
|
@ -655,6 +655,7 @@ TEST_PROGRAMS_NEED_X += test-parse-options
|
||||||
TEST_PROGRAMS_NEED_X += test-path-utils
|
TEST_PROGRAMS_NEED_X += test-path-utils
|
||||||
TEST_PROGRAMS_NEED_X += test-prio-queue
|
TEST_PROGRAMS_NEED_X += test-prio-queue
|
||||||
TEST_PROGRAMS_NEED_X += test-read-cache
|
TEST_PROGRAMS_NEED_X += test-read-cache
|
||||||
|
TEST_PROGRAMS_NEED_X += test-write-cache
|
||||||
TEST_PROGRAMS_NEED_X += test-ref-store
|
TEST_PROGRAMS_NEED_X += test-ref-store
|
||||||
TEST_PROGRAMS_NEED_X += test-regex
|
TEST_PROGRAMS_NEED_X += test-regex
|
||||||
TEST_PROGRAMS_NEED_X += test-revision-walking
|
TEST_PROGRAMS_NEED_X += test-revision-walking
|
||||||
|
|
23
t/helper/test-write-cache.c
Normal file
23
t/helper/test-write-cache.c
Normal file
|
@ -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;
|
||||||
|
}
|
29
t/perf/p0007-write-cache.sh
Executable file
29
t/perf/p0007-write-cache.sh
Executable file
|
@ -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
|
Loading…
Reference in a new issue