Files
i2p.i2p/tests/scripts/benchmark.sh
2017-09-08 11:24:36 +00:00

62 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
#
# Benchmark runner
#
# Usage: benchmark.sh [--jbigi] [JMH_ARGS]
#
# To use:
# 1) Set jmh.home in override.properties to a folder containing:
# - jmh-core.jar
# - jmh-generator-annprocess.jar
# - jopt-simple.jar
# - commons-math3.jar
# Fetch these from Maven Central. Tested using JMH 1.19 which requires
# jopt-simple 4.6 and commons-math3 3.2.
# 2) Compile the benchmarks with "ant bench".
# 3) Run the benchmarks:
# - To see underlying JMH options:
# - ./benchmark.sh -h
# - To run the benchmarks in pure-Java mode:
# - ./benchmark.sh
# - To run the benchmarks with jbigi.jar in the classpath:
# - ./benchmark.sh --jbigi
# - To run the benchmarks with a different JVM:
# - JAVA=/path/to/java ./benchmarks/benchmark.sh
#
CWD=$(dirname "$0")
if [ "x$JAVA" = 'x' ]
then
JAVA=java
fi
if [ "x$BENCHMARKS" = 'x' ]
then
BENCHMARKS="$CWD/i2p-benchmarks.jar"
stat "$BENCHMARKS" >/dev/null 2>&1
if [ "x$?" != 'x0' ]
then
BENCHMARKS="$CWD/../../core/java/build/i2p-benchmarks.jar"
fi
fi
if [ "x$JBIGI" = 'x' ]
then
JBIGI="$CWD/jbigi.jar"
stat "$JBIGI" >/dev/null 2>&1
if [ "x$?" != 'x0' ]
then
JBIGI="$CWD/../../build/jbigi.jar"
fi
fi
CLASSPATH="$BENCHMARKS"
if [ "x${1:-}" = 'x--jbigi' ]
then
CLASSPATH="$CLASSPATH:$JBIGI"
shift
fi
$JAVA -cp "$CLASSPATH" org.openjdk.jmh.Main "$@"