valgrind之callgrind性能优化

31次阅读

共计 520 个字符,预计需要花费 2 分钟才能阅读完成。

1.callgrind 概述

  它主要用来检查程序中函数调用过程中各个函数的 CPU 消耗,以便开发者分析程序中各个函数的 CPU 使用情况,方便优化提供程序的运行效率。

2 安装 valgrind

$sudo apt install valgrind

3 编译

  编译程序时使用–g –O0,即编译调试版,不优化程序性能。如:gcc -g -O0 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,用户可以双击子过程进入子过程的调用栈。而右上角则显示,有哪些函数可能会调用被选中的函数。

正文完
 0