#benchmark #toml #performance #hyperfine #git-commit

app hypcmp

Extension to run hyperfine with toml files w/ commit switches

8 releases

0.3.2 Nov 28, 2022
0.3.1 Nov 26, 2022
0.2.4 Sep 6, 2022
0.1.1 Sep 5, 2022

#320 in Profiling

26 downloads per month

MIT/Apache

20KB
473 lines

MIT license Version Downloads

hypcmp

A way to benchmark applications with hyperfine using a TOML configuration file. This also enables benchmarking across commits using commits = [...] attribute.

Benchmarking across commits is only possible if the git status is clean.

Examples

hyperfine_params = [  # common hyperfine parameters for all runs
    "--runs", "5",
    "--warmup", "3",
    "--style", "none",
]

[run.dd]
command = "dd if=Cargo.toml of=/tmp/Cargo.toml.dd"

[run.cp]
command = "cp Cargo.toml /tmp/Cargo.toml.cp"

[run.rsync]
command = "rsync -a Cargo.toml /tmp/Cargo.toml.rsync"

A more complicated example:

hyperfine_params = [  # common hyperfine parameters for all runs
    "--runs", "5",
    "--warmup", "3",
    "--parameter-list", "ifile", "Cargo.toml,README.md",
    "--parameter-list", "ofile", "/tmp/test.raw",
]

[run.dd]
commits = ["main"] # can be full commit id, an abbreviated id w/ 7 letters, tag or branch
command = "dd if={ifile} of={ofile}"
cleanup = "rm {ofile}"

[run.cp]
command = "cp {ifile} {ofile}"

[run.rsync]
command = "rsync -a {ifile} {ofile}"

Further examples are given in the examples folder.

Dependencies

~7–17MB
~242K SLoC