性能分析工具gprof应用详细介绍

性能分析工具gprof应用详细介绍

ID:22439703

大小:304.97 KB

页数:14页

时间:2018-10-29

性能分析工具gprof应用详细介绍_第1页
性能分析工具gprof应用详细介绍_第2页
性能分析工具gprof应用详细介绍_第3页
性能分析工具gprof应用详细介绍_第4页
性能分析工具gprof应用详细介绍_第5页
资源描述:

《性能分析工具gprof应用详细介绍》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Ver:1.0变更履历修改编号版本修改内容修改人修改日期1.GPROF介绍42.棚频43.刪糊43.1测i式職43.2测献石马43.3翻撕53.3.1flatprofile模式.63.3.2callgraph模式74.链接库中的函数75.棚賺86.121.gprof介绍gprof是GNUprofile工具,可以运行于linux、AIX、Sun等操作系统进行C、C++、Pascal、Fortran程序的性能分析,用于程序的性能优化以及程序瓶颈问题的查找和解决。通过分析应用程序运行吋产生的“flatprofile",可以得到每个函数的调用次数

2、,每个函数消耗的处理器时间,也可以得到函数的“调用关系阁”,包括函数调用的层次关系,每个函数调用花费了多少时间。2.使用步骤1)用gcc、g++、xlC编译程序时,使用-pg参数,如果是aCC用-G,如:g++-pg-otest,exetest,cpp编译器会自动在目标代码中插入用于性能测试的代码片断,这些代码在程序运行时采集并记录函数的调用关系和调用次数,并记录函数自身执行时间和被调用函数的执行时间。2)执行编译后的可执行程序,如:.八est.exe。该步骤运行程序的时间会稍慢于正常编译的可执行程序的运行时间。程序运行结束后,会在程序所

3、在路径下生成一个缺省文件名为gmon.out的文件,这个文件就是记录程序运行的性能、调用关系、调用次数等信息的数据文件。3)使用gprof命令来分析记录程序运行信息的gmon.out文件,如:gproftest,exegmon.out贝何以在显示器上看到函数调用相关的统计、分析信息。上述信息也可以采用gproftest,exegmon.out〉gprofresult.txt重定向到文本文件以便于后续分析。3.使用举例3.1测试环境本文提供的样例的测试环境如下:>Linuxserver1642.6.9-22.ELsmp#1SMPMonSep

4、1918:32:14EDT2005i686i686i386GNU/Linux>gccversion3.2.320030502(RedHatLinux3.2.3-47.3)>GNUgprof2.15.92.0.23.2测试代码清单1.耗时测试应用程序示例examplel.c#includeinta(void){inti=0,g=0;while(i++<100000){g+=i;}returng;}intb(void){inti=0,g=0;whiIe(i++<400000)g+=■;}returng;}intmain(in

5、targc,char**argv)intiterations;if(argc!=2){printf("Usage%s”,argv[0]);exit(-1);}elseiterations=atoi(argv[1]);printf(”Noofiterations=%d”,iterations);while(iterations--){a();b();}}这个应用程序包括两个函数:a和b,它们通过运行不同次数的循环来消耗不同的CPU时间。main函数屮采用了一个循环来反复调用这两个函数。函数b中循环的次

6、数是a函数的4倍,因此我们期望通过gpmf的分析结果可以观察到大概有20%的时间花在了a函数屮,而80%的时间花在了b函数中。3.3数据分析在gcc编译命令屮加上-pg参数即可。编译方法如下:gccexamplel.c-pg-oexample1-02-lc在编译好这个应用程序之后,按照普通方式运行这个程序:./example150000程序运行完之后,应该会看到在当前目录中新创建了一个文件gmon.outo3.3.1flatprofile模式使用gprof命令分析gmon.out文件,如下所示:gprofexample1gmon.out-

7、p-p参数标识“flatprofile”模式,在分析结果屮不显示函数的调用关系,AIX平台默认此参数有效。输出以下闪容:清单2.flatprofile的结果Flatprofile:Eachsamplecountsas0.01seconds.%cumulativeselfselftotaltimesecondssecondscalIsms/callms/callname80.38203.27203.27500004.074.07b19.61252.8749.60500000.990.99a0.00252-880.01main%time上面结

8、果中各个列的含义如下:函数以及衍生函数(函数内部W次调用的子函数)所占的总运行时间的丙分比cumulativeseconds函数累计执行的时间selfseconds函数执行占用的时间calls

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。