/
benchmark.sh
executable file
·62 lines (56 loc) · 1.13 KB
/
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
50
51
52
53
54
55
56
57
58
59
60
61
62
# this should run from the root of the git repo
echo "benchmarking greyhawk $1..."
COUNT=100
SCRIPT=$1
if [ -e "./benchmarks/$SCRIPT/$SCRIPT.c" ]; then
echo
echo
echo "C:"
clang ./benchmarks/$SCRIPT/$SCRIPT.c -o ./benchmarks/$SCRIPT/c_$SCRIPT
time {
for run in {1..$COUNT}; do
./benchmarks/$SCRIPT/c_$SCRIPT > /dev/null
done
}
fi
if [ -e "./benchmarks/$SCRIPT/$SCRIPT.ds" ]; then
echo
echo
echo "Disp:"
time {
for run in {1..$COUNT}; do
./target/release/disp ./benchmarks/$SCRIPT/$SCRIPT.ds > /dev/null
done
}
fi
if [ -e "./benchmarks/$SCRIPT/$SCRIPT.py" ]; then
echo
echo
echo "Python:"
time {
for run in {1..$COUNT}; do
python ./benchmarks/$SCRIPT/$SCRIPT.py > /dev/null
done
}
which pypy &> /dev/null
if [ $? -eq 0 ]; then
echo
echo
echo "PyPy:"
time {
for run in {1..$COUNT}; do
pypy ./benchmarks/$SCRIPT/$SCRIPT.py > /dev/null
done
}
fi
fi
if [ -e "./benchmarks/$SCRIPT/$SCRIPT.llvm" ]; then
echo
echo
echo "LLVM:"
time {
for run in {1..$COUNT}; do
lli ./benchmarks/$SCRIPT/$SCRIPT.llvm > /dev/null
done
}
fi