mirror of
https://github.com/git/git
synced 2024-08-27 19:49:21 +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-prio-queue
|
||||
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-regex
|
||||
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