Version: | 0.1.0 |
---|
This is the official benchmark suite for Py4J. It is available as a command line client and integrates with tox for convenience. It outputs the results of the benchmark on standard output and can produce a csv file.
- Python 2.7, 3.4, or 3.5
- Java 6+
- Works with Py4J 0.8+
- Optional: tox
Clone the repository and invoke the script with python py4jbench.py
usage: py4jbench.py [-h] [--no-pinned-thread] [--csv-output CSV_OUTPUT] [--append-to-csv] [--javac-path JAVAC_PATH] [--java-path JAVA_PATH] [--max-bytes MAX_BYTES] [--max-iterations MAX_ITERATIONS] [--max-threads MAX_THREADS] [--seed SEED] [--verbose] [--list] [--only [ONLY_BENCHMARKS [ONLY_BENCHMARKS ...]]] [--skip [SKIP_BENCHMARKS [SKIP_BENCHMARKS ...]]] py4j_jar_path Benchmarks Py4J positional arguments: py4j_jar_path The path to the Py4J jar. optional arguments: -h, --help show this help message and exit --no-pinned-thread Test pinned thread ClientServer. Not available before 0.10 --csv-output CSV_OUTPUT Where to save a csv output of the benchmark results. --append-to-csv Append to the csv file and do not rewrite the header if the file exists. --javac-path JAVAC_PATH Full path to javac. Otherwise javac is invoked with current PATH --java-path JAVA_PATH Full path to java. Otherwise java is invoked with current PATH --max-bytes MAX_BYTES Maximum number of bytes transferred from either sides --max-iterations MAX_ITERATIONS Maximum number of iterations. Determine the testing time. --max-threads MAX_THREADS Maximum number of explicitly started threads. --seed SEED Seed to use to generate random data. --verbose Print information as the benchmark progresses --list Lists all benchmark tests --only [ONLY_BENCHMARKS [ONLY_BENCHMARKS ...]] Run only the selected benchmarks. Can also be set with the PY4J_BENCHMARK_ONLY environment variables. --skip [SKIP_BENCHMARKS [SKIP_BENCHMARKS ...]] Skip the selected benchmarks. Can also be set with the PY4J_BENCHMARK_SKIP environment variables.
# Run benchmark on currently installed Py4J python py4jbench.py --verbose --csv-output report.csv --append-to-csv path/to/py4j0.10.2.1.jar # List all supported environments tox --listenvs # Run benchmark on one environment. Generates report.csv tox -e py27-py4j092 # Run benchmark on one environment for one test only export PY4J_BENCHMARK_ONLY=java-instance-creation tox -e py27-py4j092 # Run benchmark on all supported environments. Generates report.csv tox
Py4J-Benchmark is distributed with the BSD 3-Clause license. See LICENSE.txt for more information.