valgrindのcallgrind性能最適化
889 ワード
1.callgrindの概要
それは主にプログラム中の関数呼び出し中の各関数のCPU消費を検査するために用いられ、開発者がプログラム中の各関数のCPU使用状況を分析し、提供プログラムの運行効率を最適化するのに便利である.
2 valgrindのインストール
3コンパイル
プログラムをコンパイルするときに–g-O 0を使用します.つまり、デバッグ版をコンパイルし、プログラムのパフォーマンスを最適化しません.例えば、gcc-g-O 0 sample.c –o sample
4デバッグ運転
プログラムの実行が終了すると、現在のディレクトリの下でcallgrindが生成されます.out.($pid)分析ログ
5 CPU消費分析
1.4.1 kcachegrindのインストール
1.4.2分析callgrind.out.($pid)ログファイル
上図に示すようにlrは、実行命令がプログラム実行中の総命令に占める割合である.lrが高い関数ほど,その消費するCPUリソースが高いことを示す.最適化された空間は大きくなります.ユーザーが左のボックスの関数を選択すると、右下隅にその関数のサブ呼び出しプロシージャ(呼び出しスタック)と各サブプロシージャのirが表示され、ユーザーはサブプロシージャをダブルクリックしてサブプロシージャの呼び出しスタックに入ることができます.右上隅には、選択した関数を呼び出す可能性がある関数が表示されます.
それは主にプログラム中の関数呼び出し中の各関数の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が表示され、ユーザーはサブプロシージャをダブルクリックしてサブプロシージャの呼び出しスタックに入ることができます.右上隅には、選択した関数を呼び出す可能性がある関数が表示されます.