d30c32f97b3bdbe1464e307e8bea26adb4a5c2cc
1#!/bin/sh
2
3test_description='Tests multi-threaded lazy_init_name_hash'
4. ./perf-lib.sh
5
6test_perf_large_repo
7test_checkout_worktree
8
9test_expect_success 'verify both methods build the same hashmaps' '
10 test-lazy-init-name-hash --dump --single >out.single &&
11 test-lazy-init-name-hash --dump --multi >out.multi &&
12 sort <out.single >sorted.single &&
13 sort <out.multi >sorted.multi &&
14 test_cmp sorted.single sorted.multi
15'
16
17test_expect_success 'multithreaded should be faster' '
18 test-lazy-init-name-hash --perf >out.perf
19'
20
21test_expect_success 'calibrate' '
22 entries=$(wc -l <out.single) &&
23
24 case $entries in
25 ?) count=1000000 ;;
26 ??) count=100000 ;;
27 ???) count=10000 ;;
28 ????) count=1000 ;;
29 ?????) count=100 ;;
30 ??????) count=10 ;;
31 *) count=1 ;;
32 esac &&
33 export count &&
34
35 case $entries in
36 1) entries_desc="1 entry" ;;
37 *) entries_desc="$entries entries" ;;
38 esac &&
39
40 case $count in
41 1) count_desc="1 round" ;;
42 *) count_desc="$count rounds" ;;
43 esac &&
44
45 desc="$entries_desc, $count_desc" &&
46 export desc
47'
48
49test_perf "single-threaded, $desc" "
50 test-lazy-init-name-hash --single --count=$count
51"
52
53test_perf "multi-threaded, $desc" "
54 test-lazy-init-name-hash --multi --count=$count
55"
56
57test_done