Browse Source
Create a performance test to see how the skipList implementation performs. First we setup N bad commits, then we see how progressively working our way up to 0..N in increments of 10x does. I.e. the needle(s) in the haystack get progressively more numerous. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
![l.s.r@web.de](/assets/img/avatar_default.png)
![Junio C Hamano](/assets/img/avatar_default.png)
1 changed files with 40 additions and 0 deletions
@ -0,0 +1,40 @@ |
|||||||
|
#!/bin/sh |
||||||
|
|
||||||
|
test_description='Test fsck skipList performance' |
||||||
|
|
||||||
|
. ./perf-lib.sh |
||||||
|
|
||||||
|
test_perf_fresh_repo |
||||||
|
|
||||||
|
n=1000000 |
||||||
|
|
||||||
|
test_expect_success "setup $n bad commits" ' |
||||||
|
for i in $(test_seq 1 $n) |
||||||
|
do |
||||||
|
echo "commit refs/heads/master" && |
||||||
|
echo "committer C <c@example.com> 1234567890 +0000" && |
||||||
|
echo "data <<EOF" && |
||||||
|
echo "$i.Q." && |
||||||
|
echo "EOF" |
||||||
|
done | q_to_nul | git fast-import |
||||||
|
' |
||||||
|
|
||||||
|
skip=0 |
||||||
|
while test $skip -le $n |
||||||
|
do |
||||||
|
test_expect_success "create skipList for $skip bad commits" ' |
||||||
|
git log --format=%H --max-count=$skip | |
||||||
|
sort >skiplist |
||||||
|
' |
||||||
|
|
||||||
|
test_perf "fsck with $skip skipped bad commits" ' |
||||||
|
git -c fsck.skipList=skiplist fsck |
||||||
|
' |
||||||
|
|
||||||
|
case $skip in |
||||||
|
0) skip=1 ;; |
||||||
|
*) skip=${skip}0 ;; |
||||||
|
esac |
||||||
|
done |
||||||
|
|
||||||
|
test_done |
Loading…
Reference in new issue