Skip to content

Commit 6d9d6b0

Browse files
committed
chore: Update benchmark script
1 parent 7b653b3 commit 6d9d6b0

1 file changed

Lines changed: 45 additions & 16 deletions

File tree

benchmark.sh

Lines changed: 45 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
repo=$(realpath $(dirname "$0"))
44
tags=(
5-
0.25.5
6-
0.26.0
7-
0.27.5
8-
0.28.2
9-
0.29.1
10-
0.30.1
11-
0.31.0
5+
# 0.25.5
6+
# 0.26.0
7+
# 0.27.5
8+
# 0.28.2
9+
# 0.29.1
10+
# 0.30.1
11+
# 0.31.0
1212
HEAD
1313
)
1414
echo "Testing tags: ${tags[@]}"
@@ -26,28 +26,57 @@ for tag in ${tags[@]}; do
2626
else
2727
venv${tag}/bin/python -m pip install griffe==${tag} &>/dev/null
2828
fi
29+
venv${tag}/bin/python -m pip install pyinstrument scalene memray &>/dev/null
2930
fi
3031
) &
3132
done
3233
wait
3334

3435
cat <<EOF >benchmark.py
3536
import sys
37+
import griffe
3638
from griffe.loader import GriffeLoader
37-
stblib_packages = sorted([m for m in sys.stdlib_module_names if not m.startswith("_")])
38-
loader = GriffeLoader(allow_inspection=False)
39-
for package in stblib_packages:
39+
from griffe.extensions import load_extensions
40+
from griffe.extensions import Extension
41+
stdlib_packages = sorted([m for m in sys.stdlib_module_names if not m.startswith("_")])
42+
# extensions = load_extensions([
43+
# Extension, Extension, Extension, Extension,
44+
# Extension, Extension, Extension, Extension,
45+
# Extension, Extension, Extension, Extension,
46+
# Extension, Extension, Extension, Extension,
47+
# ])
48+
extensions = None
49+
loader = GriffeLoader(allow_inspection=False, extensions=extensions)
50+
for package in stdlib_packages:
4051
try:
4152
loader.load_module(package)
42-
except Exception:
53+
except:
4354
pass
4455
loader.resolve_aliases(implicit=False, external=False)
4556
EOF
4657

47-
commands=$(
58+
if [ "$1" = "hyperfine" ]; then
59+
commands=$(
60+
for tag in ${tags[@]}; do
61+
echo "'venv${tag}/bin/python benchmark.py'"
62+
done
63+
)
64+
65+
eval hyperfine --show-output --runs 2 ${commands} --export-json benchmark.json
66+
elif [ "$1" = "scalene" ]; then
4867
for tag in ${tags[@]}; do
49-
echo "'venv${tag}/bin/python benchmark.py'"
68+
venv${tag}/bin/python -m scalene --cli --cpu --memory --profile-all benchmark.py
5069
done
51-
)
52-
53-
eval hyperfine --runs 3 ${commands} --export-json benchmark.json
70+
elif [ "$1" = "memray" ]; then
71+
for tag in ${tags[@]}; do
72+
venv${tag}/bin/python -m memray run -o report${tag}.bin benchmark.py
73+
# venv${tag}/bin/python -m memray flamegraph report${tag}.bin
74+
# venv${tag}/bin/python -m memray tree report${tag}.bin
75+
# venv${tag}/bin/python -m memray summary report${tag}.bin
76+
venv${tag}/bin/python -m memray stats report${tag}.bin
77+
done
78+
elif [ "$1" = "pyinstrument" ]; then
79+
for tag in ${tags[@]}; do
80+
venv${tag}/bin/pyinstrument benchmark.py
81+
done
82+
fi

0 commit comments

Comments
 (0)