web-dev-qa-db-ja.com

valgrindを使用して、各関数に費やされた時間(秒単位)を知る

コマンドウィンドウで使用できるvalgrindの拡張機能はありますか?

ありがとう=)

33
Syntax_Error

機械語命令のプロファイリングには、valgrindの callgrind を使用します(また、 cachegrind はキャッシュおよび分岐予測プロファイリングを実行できますが、これは非常に優れています)。

google's cpu profiler を使用して時間を測定するには、gprofよりも優れた結果が得られます。サンプリング周波数を設定すると、出力をNice注釈付きコールグラフとして表示できます。

28
Karoly Horvath

Valgrindは、時間の測定には適していません。valgrindでアプリケーションを実行すると、結果がゆがみます(スローダウン、CPU対I/O)。したがって、valgrindプロファイリングツールcallgrindは、時間ではなくCPU命令を測定します。 Callgrindは、ボトルネックがCPUバウンド(CPU命令が重要)である場合にのみ有用であり、測定されたCPU命令は費やされた時間に比例します。大量のI/Oまたは複数のプロセスが関係する場合は役に立ちません。次に、gprofやsysprofなどのサンプリングプロファイラーを使用する必要があります。これは、プロセスが機能する間隔でチェックし、結果の歪みを少なくします。

17
Frank Osterfeld

this リンクを使用します。 Callgrindのようなものがトリックを行うべきだと思います。

3
Sriram