Cプログラムのマイクロベンチマークにどのツールを使用すべきかわかりません。
私は両方を測定したいと思います。
- メモリ使用量、RSS(常駐セットサイズ)
- CPUサイクル
私はawkスクリプトを使用しperf record -g
てperf script
パイプしました。これはメモリ使用量を見つけるのに役立ちますが、CPUサイクルperf record
はサンプリングによって得られるため、CPUサイクルは正確ではありません。perf stat
正確ですが、明らかに各機能の統計を提供するわけではありません。 perf_eventライブラリは非常に豊富な文書を持っているようで、簡単なベンチマークには難しい作業です。
簡単に見つけてください:
- システムクリック
- DTrace
- LTTng
- パフォーマンスツール
- ユリ
- パプイ
これはよく文書化された素晴らしいツールのようです。
最も重点を置くものは何ですか?それとも別の提案がありますか?
時間をいただきありがとうございます。
答え1
独自のCコードを書いているので、次のように呼び出すだけです。getrusage() あなたが言及した統計を入手してください。興味のあるベンチマークコードの前後に呼び出してください。
システムコールにはオーバーヘッドがあります。単一の測定を実行するために、ベンチマークコードに複数の繰り返しを繰り返すことができます。同じコードを複数回実行すると、タイミングが大きく変化した場合、ループカウンタが低すぎるように設定されます。