-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbenchmark.sh
More file actions
executable file
·68 lines (59 loc) · 1.75 KB
/
benchmark.sh
File metadata and controls
executable file
·68 lines (59 loc) · 1.75 KB
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
63
64
65
66
67
68
#!/bin/bash
set -e
set -o pipefail
if ! command -v mamba >/dev/null 2>&1
then
echo 'Please install mamba before running this script.'
exit 1
fi
SCRIPT_PATH=$(dirname "$(realpath -s "$0")")
DOCS_OPS_PATH="$SCRIPT_PATH/.."
BASE_PATH="$DOCS_OPS_PATH/../../"
BENCHMARKS_PATH="$BASE_PATH/scijava-ops-benchmarks"
BENCH_OUT_FILE=scijava-ops-benchmarks_results.json
BENCH_OUT_PATH=$(realpath -s "$DOCS_OPS_PATH/$BENCH_OUT_FILE")
if [ -f "$BENCH_OUT_PATH" ]
then
echo 'Graphing existing benchmark results from:'
echo " $BENCH_OUT_PATH"
echo 'To rerun benchmarks, delete this file first.'
else
echo
echo '=== BUILDING THE CODE ==='
cd "$BASE_PATH"
mvn -Denforcer.skip -Dinvoker.skip -Dmaven.test.skip -P benchmarks clean install -pl scijava-ops-benchmarks -am
echo
echo '=== COPYING DEPENDENCIES ==='
cd "$BENCHMARKS_PATH"
{
mvn dependency:copy-dependencies
mvn dependency:copy -Dartifact=org.slf4j:slf4j-simple:1.7.36 -DoutputDirectory=target/dependency
} | grep Copying | while read line
do
stdbuf -o0 echo -n '.'
done
echo
# NB: Use the version of Java pointed to by the JAVA_HOME variable, if any.
test -x "$JAVA_HOME/bin/java" && JAVA="$JAVA_HOME/bin/java" || JAVA=java
echo
echo '=== RUNNING BENCHMARKS ==='
cd "$DOCS_OPS_PATH"
"$JAVA" \
-cp "$BENCHMARKS_PATH/target/*:$BENCHMARKS_PATH/target/dependency/*" \
--add-opens=java.base/java.io=ALL-UNNAMED \
org.openjdk.jmh.Main \
-rf json -rff "$BENCH_OUT_FILE" \
-r 5
fi
cd "$DOCS_OPS_PATH"
envPath=.benchmark-env
pythonPath="$envPath/bin/python"
if [ ! -x "$pythonPath" ]
then
echo
echo '=== CREATING CONDA ENVIRONMENT ==='
mamba create -y -p "$envPath" python=3.10 plotly=5.19.0
fi
echo
echo '=== GRAPHING THE RESULTS ==='
"$pythonPath" graph_results.py