fastester.core

Run performance benchmarks and create displays of those measurements.

High-level workflow:

  1. Set options.
  2. Write benchmarks with defbench.
  3. Run benchmarks with run-benchmarks.
  4. 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:

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.