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計時サンプルあたりの呼び出し回数、n>0n > 0
--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, ...]} を出力します。各 tit_i は 1 サンプルの経過実時間を repeat で割った値で、単位はナノ秒です。

mutation_policy = "scratch_per_sample" のケースでは、タイマーを開始する前に呼び出しごとに入力をコピーします。