Utilities
PkgJogger.benchmark_dir — Functionbenchmark_dir(pkg::Module)
benchmark_dir(pkg::PackageSpec)
benchmark_dir(project_path::String)Returns the absolute path of the benchmarks folder for pkg.
Supported Benchmark Directories:
PKG_DIR/benchmark
PkgJogger.locate_benchmarks — Functionlocate_benchmarks(pkg::Module)
locate_benchmarks(path::String, name=String[])Returns a list of BenchModule for identified benchmark files
PkgJogger.judge — Functionjudge(new, old; metric=Statistics.median, kwargs...)Compares benchmarking results from new vs old for regressions/improvements using metric as a basis. Additional kwargs are passed to BenchmarkTools.judge
Effectively a convenience wrapper around load_benchmarks and BenchmarkTools.judge
new and old can be any one of the following: - Filename of benchmarking results saved by PkgJogger - A Dict as returned by PkgJogger.load_benchmarks(filename) - A BenchmarkTools.BenchmarkGroup with benchmarking results
PkgJogger.test_benchmarks — Functiontest_benchmarks(s::BenchmarkGroup)Runs a @testsuite for each benchmark in s once (One evaluation of the benchmark's target) Sub-benchmark groups / benchmarks are recursively wrapped in @testsuites for easy identification.
benchmarks are marked as "passing" if they don't error during evaluation.
PkgJogger.tune! — Functiontune!(group::BenchmarkGroup, ref::BenchmarkGroup; verbose::Bool=false)Tunes a BenchmarkGroup, only tunning benchmarks not found in ref, otherwise reuse tuning results from the reference BenchmarkGroup, by copying over all benchmark parameters from ref.
This can reduce benchmarking runtimes significantly by only tuning new benchmarks. But does ignore the following: - Changes to benchmarking parameters (ie. memory_tolerance) between group and ref - Significant changes in performance, such that re-tunning is warranted - Other changes (ie. changing machines), such that re-tunning is warranted
PkgJogger.getsuite — Functiongetsuite(suite, [select...])Internal
PkgJogger.build_module — Functionbuild_module(s::BenchModule)Construct a module wrapping the BenchmarkGroup defined by s::BenchModule