内容简介:它主要用来检查程序中函数调用过程中各个函数的CPU消耗,以便开发者分析程序中各个函数的CPU使用情况,方便优化提供程序的运行效率。编译程序时使用–g –O0,即编译调试版,不优化程序性能。如:gcc -g -O0 sample.c –o sample程序运行结束后,会在当前目录下生成callgrind.out.($pid)分析日志
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,用户可以双击子过程进入子过程的调用栈。而右上角则显示,有哪些函数可能会调用被选中的函数。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C++沉思录
Andrew Koenig、Barbara Moo / 黄晓春、孟岩(审校) / 人民邮电出版社 / 2002-11-01 / 50.00元
《C++ 沉思录》集中反映了C++的关键思想和编程技术,不仅告诉你如何编程,还告诉你为什么要这样编程。本书曾出现在众多的C++专家推荐书目中。 这将是C++程序员的必读之作。因为: 它包含了丰富的C++思想和技术,从详细的代码实例总结出程序设计的原则和方法。 不仅教你如何遵循规则,还教你如何思考C++编程。 既包括面向对象编程也包括泛型编程。 探究STL这一近年来C++最重要的新成果的内在思想。一起来看看 《C++沉思录》 这本书的介绍吧!