bench/ball_float チュートリアル
このページでは、区間(ボール)演算のベンチマークの実行方法と出力の読み方を説明します。このスイートは、同一の入力に対する実装パスを対応のある計測で比較します。ツールキットと成果物の形式については bench チュートリアルを参照してください。
クイックスタート
リポジトリのルートから実行します。
just bench ball-float
ランナーは src/bench/ball_float のスキップされた性能テストをネイティブターゲット上でリリースモードで実行し、.tmp/bench/SUITE.jsonl(すべての観測値)と .tmp/bench/SUITE.analysis.txt(集約された行)を書き出します。ここで SUITE は just bench に与えた名前です。
日常的なタスク
分析行を読む
分析ファイルには MAREMARK_HOTSPOT=ball-float/OP/DATASET core_pct=… full_pct=… が含まれます。core_pct の値は、コアパスとカーネルとの対応のある差の中央値を、カーネルの中央値時間に対するパーセントで表したものです。full_pct は、checked パスとコアパスについて同じものです。正の値は上位の層の方が遅いことを意味します。
計測せずにプランを検査する
sh tools/run_moon_clean_exec.sh test src/bench/ball_float --target native
は、すべての仕様をコンパイルするプランテストのみを実行します。
さらに進んで
- データセットや実装は
*_test.mbtファイルで変更します。参照オラクルは残しておき、高速でも誤ったパスが実行を失敗させるようにしてください。 - 2 つの実行を比較するのは、記録された環境が一致する場合に限ってください。
- 性能監査と
performance/のページに計測結果がまとめられています。
よくある落とし穴
- ベンチマークは通常の
moon testの実行ではスキップされます。just benchを使用してください。 - 結果はマシンに依存します。パーセンテージの方が絶対的なマイクロ秒よりも安定しています。
次のステップ
- bench/ball_float API
- bench/ball_float の設計
- 統計については bench の設計を参照してください。