perf_runner API
Luna-Flow/linear-algebra/perf_runner は、ベンチマークケースを 1 つ実行して JSON レコードを出力する実行ファイルです。出力は診断用チェックサムか、計時サンプルのリストのどちらかです。公開ライブラリ項目はありません。
ソース: src/perf_runner/main.mbt。計測方法は perf_runner の設計 にあります。
公開項目
なし。このパッケージは pkgtype(kind: "executable") です。
コマンドライン
moon run src/perf_runner --target native <case-id> [--case-file <path>] [--repeat <n>] [--samples <n>] [--warmup <n>]
| 引数 | 既定値 | 意味 |
|---|---|---|
<case-id> | 必須 | perf_support に登録されたケース ID |
--case-file <path> | bench/datasets/cases/<case-id>.json | フィクスチャファイル。存在しなければ再生成 |
--repeat <n> | 1 | 計時サンプルあたりの呼び出し回数、 |
--samples <n> | 0 | 計時サンプル数。0 で診断モード |
--warmup <n> | 0 | サンプリング前の計時しないウォームアップ回数 |
引数が不正または不足している場合は、使い方のメッセージとともに中断します。
出力
診断モード(--samples 0)はケースを repeat 回実行し、case_diagnostic_payload を出力します: {"kind":"diagnostic", ..., "checksum":"<u64>"}。repeat 回の実行のチェックサムは、個々のチェックサムを畳み込んだものです。
サンプリングモード は {"kind":"benchmark", ..., "repeat":<n>, "samples":[t1, t2, ...]} を出力します。各 は 1 サンプルの経過実時間を repeat で割った値で、単位はナノ秒です。
mutation_policy = "scratch_per_sample" のケースでは、タイマーを開始する前に呼び出しごとに入力をコピーします。