マイクロベンチマークにどのツールを使用できますか?

マイクロベンチマークにどのツールを使用できますか?

Cプログラムのマイクロベンチマークにどのツールを使用すべきかわかりません。

私は両方を測定したいと思います。

  • メモリ使用量、RSS(常駐セットサイズ)
  • CPUサイクル

私はawkスクリプトを使用しperf record -gperf scriptパイプしました。これはメモリ使用量を見つけるのに役立ちますが、CPUサイクルperf recordはサンプリングによって得られるため、CPUサイクルは正確ではありません。perf stat正確ですが、明らかに各機能の統計を提供するわけではありません。 perf_eventライブラリは非常に豊富な文書を持っているようで、簡単なベンチマークには難しい作業です。

簡単に見つけてください:

  • システムクリック
  • DTrace
  • LTTng
  • パフォーマンスツール
  • ユリ
  • パプイ

これはよく文書化された素晴らしいツールのようです。

最も重点を置くものは何ですか?それとも別の提案がありますか?

時間をいただきありがとうございます。

答え1

独自のCコードを書いているので、次のように呼び出すだけです。getrusage() あなたが言及した統計を入手してください。興味のあるベンチマークコードの前後に呼び出してください。

システムコールにはオーバーヘッドがあります。単一の測定を実行するために、ベンチマークコードに複数の繰り返しを繰り返すことができます。同じコードを複数回実行すると、タイミングが大きく変化した場合、ループカウンタが低すぎるように設定されます。

関連情報