-
-
Notifications
You must be signed in to change notification settings - Fork 549
/
benchmark.sh
executable file
·49 lines (39 loc) · 997 Bytes
/
benchmark.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env bash
set -e
if [ "$1" = "--full" ]; then
FILE=$2
FULL=true
else
FILE=$1
FULL=false
fi
echo 'Tokei Benchmarking Tool'
if [ $FULL = true ]; then
REQUIRED='cloc, tokei, loc, hyperfine, and scc'
else
REQUIRED='tokei, and hyperfine'
fi
echo "The use of this tool requires $REQUIRED to be installed and available in your PATH variable."
echo 'Please enter the path you would like to benchmark:'
if [ -z ${FILE+x} ]; then
read -r input
else
input=$FILE
fi
hyperfine --version
echo "old tokei: $(tokei --version)"
if [ $FULL = true ]; then
scc --version
loc --version
echo "cloc: $(cloc --version)"
fi
cargo build --release
if [ $FULL = true ]; then
hyperfine -w 10 --export-csv './results.csv' "target/release/tokei $input" \
"tokei $input" \
"scc $input" \
"loc $input" # \ "cloc $input"
else
hyperfine -w 5 "target/release/tokei $input" \
"tokei $input"
fi