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 を使用してください。
  • 結果はマシンに依存します。パーセンテージの方が絶対的なマイクロ秒よりも安定しています。

次のステップ