
The perf test suite (more specifically: t/perf/aggregate.perl) requires each test script to write test results into a file, otherwise it aborts when aggregating. Add actual performance tests with test_perf to allow p0004 to be run together with other perf scripts. Calibrate the value for the parameter --count based on the size of the test repository, in order to get meaningful results with smaller repos yet still be able to finish the script against huge ones without having to wait for hours. Signed-off-by: Rene Scharfe <l.s.r@web.de> Acked-by: Jeff Hostetler <git@jeffhostetler.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
58 lines
1.2 KiB
Bash
Executable File
58 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='Tests multi-threaded lazy_init_name_hash'
|
|
. ./perf-lib.sh
|
|
|
|
test_perf_large_repo
|
|
test_checkout_worktree
|
|
|
|
test_expect_success 'verify both methods build the same hashmaps' '
|
|
test-lazy-init-name-hash --dump --single >out.single &&
|
|
test-lazy-init-name-hash --dump --multi >out.multi &&
|
|
sort <out.single >sorted.single &&
|
|
sort <out.multi >sorted.multi &&
|
|
test_cmp sorted.single sorted.multi
|
|
'
|
|
|
|
test_expect_success 'multithreaded should be faster' '
|
|
test-lazy-init-name-hash --perf >out.perf
|
|
'
|
|
|
|
test_expect_success 'calibrate' '
|
|
entries=$(wc -l <out.single) &&
|
|
|
|
case $entries in
|
|
?) count=1000000 ;;
|
|
??) count=100000 ;;
|
|
???) count=10000 ;;
|
|
????) count=1000 ;;
|
|
?????) count=100 ;;
|
|
??????) count=10 ;;
|
|
*) count=1 ;;
|
|
esac &&
|
|
export count &&
|
|
|
|
case $entries in
|
|
1) entries_desc="1 entry" ;;
|
|
*) entries_desc="$entries entries" ;;
|
|
esac &&
|
|
|
|
case $count in
|
|
1) count_desc="1 round" ;;
|
|
*) count_desc="$count rounds" ;;
|
|
esac &&
|
|
|
|
desc="$entries_desc, $count_desc" &&
|
|
export desc
|
|
'
|
|
|
|
test_perf "single-threaded, $desc" "
|
|
test-lazy-init-name-hash --single --count=$count
|
|
"
|
|
|
|
test_perf "multi-threaded, $desc" "
|
|
test-lazy-init-name-hash --multi --count=$count
|
|
"
|
|
|
|
test_done
|