valgrindのcallgrind性能最適化

889 ワード

1.callgrindの概要
  それは主にプログラム中の関数呼び出し中の各関数のCPU消費を検査するために用いられ、開発者がプログラム中の各関数のCPU使用状況を分析し、提供プログラムの運行効率を最適化するのに便利である.
2 valgrindのインストール
$sudo apt install valgrind

3コンパイル
プログラムをコンパイルするときに–g-O 0を使用します.つまり、デバッグ版をコンパイルし、プログラムのパフォーマンスを最適化しません.例えば、gcc-g-O 0 sample.c –o sample
4デバッグ運転
$valgrind --tool=callgrind ./svpushlnx

プログラムの実行が終了すると、現在のディレクトリの下でcallgrindが生成されます.out.($pid)分析ログ
5 CPU消費分析
1.4.1 kcachegrindのインストール
$sudo apt install kcachegrind

1.4.2分析callgrind.out.($pid)ログファイル
$kcachegrind callgrind.out.24034

上図に示すようにlrは、実行命令がプログラム実行中の総命令に占める割合である.lrが高い関数ほど,その消費するCPUリソースが高いことを示す.最適化された空間は大きくなります.ユーザーが左のボックスの関数を選択すると、右下隅にその関数のサブ呼び出しプロシージャ(呼び出しスタック)と各サブプロシージャのirが表示され、ユーザーはサブプロシージャをダブルクリックしてサブプロシージャの呼び出しスタックに入ることができます.右上隅には、選択した関数を呼び出す可能性がある関数が表示されます.