fastester.core
Run performance benchmarks and create displays of those measurements.
High-level workflow:
- Set options.
- Write benchmarks with defbench.
- Run benchmarks with run-benchmarks.
- Generate html document with generate-documents.
-main
(-main action)(-main action explicit-options-filename)Given keyword action, runs a Fastester task with the following associations:
:benchmarksexecutes(run-benchmarks):documentsexecutes(generate-documents).
Examples:
$ lein run -m fastester.core :benchmarks
$ lein run -m fastester.core :documents
Read options from ./resources/fastester_options.edn because explicit options filename is not supplied.
Example:
$ lein run -m fastester.core :benchmarks ./foobar_options.edn
Reads options from explicitly-given ./foobar_options.edn.
Note #1: Invoke the JVM with tiered compilation levels one or three (recommended).
Example Leiningen project.clj entry:
:jvm-opts ["-XX:+TieredCompilation"
"-XX:TieredStopAtLevel=4"]
Note #2: When running on systems with multiple, heterogeneous CPU cores, pin the benchmark process to a specified core, e.g., with Linux’s taskset utility.
run-benchmarks-and-generate-documents
(run-benchmarks-and-generate-documents)(run-benchmarks-and-generate-documents explicit-options-filename)Run all benchmarks and generate an html document that displays comparisons to previous versions.
See run-benchmarks and generate-documents.