Skip to content

tak run ​

  • Usage: tak run [FLAGS] [-- CMD]…

Benchmark a command, or everything declared in tak.toml.

Arguments ​

  • [-- CMD]… — Command to benchmark, after --. Omit to run what tak.toml declares.

Flags ​

  • --bench <BENCH> — Name to record this measurement under. With no command, selects a single benchmark from tak.toml instead of running all of them.
  • --runs <N|auto> — Timed runs, or auto to size each subject from how long its samples take. Overrides tak.toml when both are given.
  • --warmup <WARMUP> — Untimed warmup runs. Overrides tak.toml when both are given.
  • --no-counters — Skip instruction counting even where valgrind is available.
  • --allocations — Also count heap allocations under valgrind's DHAT, for every subject measured. Recorded and reported, never gated.
  • --record — Append the result to refs/notes/tak for the current commit.
  • --no-progress — Do not report progress on stderr.
  • --subject <NAME> — Measure only this subject of each multi-subject benchmark. Repeatable. Benchmarks with none of the named subjects are skipped.
  • --seed <N> — Seed for the order subjects are sampled in. Every multi-subject run prints the seed it used, so an order can be repeated.
  • --config <PATH> — Read this file instead of searching for tak.toml.
  • --dry-run — Print what would run — every subject's command, setup, prepare, check, directory, environment and run count, templates rendered — without running any of it.
  • --export-json <PATH> — Write every sample and summary to PATH as hyperfine-compatible JSON.
  • --profile-dir <DIR> — Keep the cachegrind profile behind each instruction count, as DIR/<bench>/<subject>.cachegrind.out, for tak explain.
  • --save-baseline <NAME> — Save the results as a named local baseline, kept in the git directory rather than in refs/notes/tak. Replaces what NAME held for the benchmarks measured and keeps the rest.
  • --baseline <NAME> — Compare the results against a saved local baseline and print the report tak compare prints. Reports only; add --gate to fail on a regression.
  • --gate — With --baseline, fail when an instruction count rose beyond its gate — the one tak compare would apply — or when a gated benchmark could not be compared. allow_empty (--allow-empty) passes, with a warning, a run where nothing was compared at all.
  • -h --help — Print help