Merge branch 'jh/memihash-opt' into maint

perf-test update.

* jh/memihash-opt:
  p0004: don't error out if test repo is too small
  p0004: don't abort if multi-threaded is too slow
  p0004: use test_perf
  p0004: avoid using pipes
  p0004: simplify calls of test-lazy-init-name-hash
This commit is contained in:
Junio C Hamano 2017-06-13 13:27:03 -07:00
commit a4478c9c03

View File

@ -7,13 +7,50 @@ test_perf_large_repo
test_checkout_worktree
test_expect_success 'verify both methods build the same hashmaps' '
$GIT_BUILD_DIR/t/helper/test-lazy-init-name-hash$X --dump --single | sort >out.single &&
$GIT_BUILD_DIR/t/helper/test-lazy-init-name-hash$X --dump --multi | sort >out.multi &&
test_cmp out.single out.multi
test-lazy-init-name-hash --dump --single >out.single &&
if test-lazy-init-name-hash --dump --multi >out.multi
then
test_set_prereq REPO_BIG_ENOUGH_FOR_MULTI &&
sort <out.single >sorted.single &&
sort <out.multi >sorted.multi &&
test_cmp sorted.single sorted.multi
fi
'
test_expect_success 'multithreaded should be faster' '
$GIT_BUILD_DIR/t/helper/test-lazy-init-name-hash$X --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 REPO_BIG_ENOUGH_FOR_MULTI "multi-threaded, $desc" "
test-lazy-init-name-hash --multi --count=$count
"
test_done