让程序飞 之 性能工具:gprof & gprof2dot
2011-05-04 16:02
302 查看
性能!性能!
linux服务端编程,性能总是不可避免要思考的问题。
而单机(严格的说是单核)单线程程序(严格的说是逻辑)又是所有复杂应用的基础。所以,这块的性能是整个应用的基础。
当遇到应用相应很慢的时候我们往往会疑问:这么强劲的CPU到底在干什么,反应这么慢。
满足你!linux下常用的性能工具就是跟gcc一起的gprof。来个例子程序:
哈哈,好烂的程序啊。我们现在要通过gprof找出这个程序运行时cpu都用来干什么了。
要启用gprof很简单,gcc编译的时候带上-pg参数即可:
下面运行./test。运行完我们可以看到目录下多了个gmon.out的文件。这就是gprof的日志,里面记录了程序运行cpu的使用信息。打开看看?杯具,二进制文件,我们人类看不懂。。。我们要运行下面的命令生成报表:
打开report.txt,我们可以看到两张表。
第一张:
这就是每个函数占用cpu的时间以及百分比了。我们可以很明显的看到f1()、f2()和f3()所用的时间关系。很准确。
第二张表式函数调用表,描述了函数调用的相互关系:
仔细看吧。
下面介绍个更给力的工具来生成报表(其实是图)——gprof2dot:http://code.google.com/p/jrfonseca/wiki/Gprof2Dot。
接着上面的report.txt,执行下面命令:
第一句的意思是将报表转化为dot文件(graphviz http://www.graphviz.org/图像文件格式)。第二句的意思是将这个文件再转为png格式。好吧现在用图像软件打开吧:
不用解释了吧。调用次数/本身所花cpu时间/调用的函数所花时间 一目了然!
linux服务端编程,性能总是不可避免要思考的问题。
而单机(严格的说是单核)单线程程序(严格的说是逻辑)又是所有复杂应用的基础。所以,这块的性能是整个应用的基础。
当遇到应用相应很慢的时候我们往往会疑问:这么强劲的CPU到底在干什么,反应这么慢。
满足你!linux下常用的性能工具就是跟gcc一起的gprof。来个例子程序:
要启用gprof很简单,gcc编译的时候带上-pg参数即可:
第一张:
第二张表式函数调用表,描述了函数调用的相互关系:
下面介绍个更给力的工具来生成报表(其实是图)——gprof2dot:http://code.google.com/p/jrfonseca/wiki/Gprof2Dot。
接着上面的report.txt,执行下面命令:
不用解释了吧。调用次数/本身所花cpu时间/调用的函数所花时间 一目了然!
相关文章推荐
- linux环境下 C++性能测试工具 gprof 和gprof2dot
- linux环境下C/C++性能测试工具 gprof 和gprof2dot
- linux环境下 C++性能测试工具 gprof + kprof + gprof2dot
- linux环境下 C++性能测试工具 gprof + kprof + gprof2dot
- gprof——GNU性能分析工具
- gprof && oprofile 分析linux程序性能瓶颈
- linux环境下 C++性能测试工具 gprof + kprof + gprof2dot【转】
- linux环境下 C++性能测试工具 gprof 和gprof2dot
- gprof-Linux下程序的性能优化工具
- linux ungprof & gprof2dot 性能调优
- 程序性能分析工具gprof介绍
- 用工具提升程序的性能和稳定性
- Java程序性能分析工具Java VisualVM(Visual GC)—程序员必备利器
- solr环境搭建&基本使用 - 程序灵感 solr服务与tomcat整合 solr使用配置步骤 solr使用 推荐分词工具 一.Solr服务与tomcat整合 1、solr
- <VB6.0 & android开发小工具> 桌面帮助程序 里面涉及到的代码
- 功能测试工具QTP & 性能测试工具LoadRunner使用总结
- VTune 分析和优化程序性能的工具
- gprof——GNU性能分析工具
- Go 程序的性能优化及 pprof 的使用
- linux下关于程序性能和系统性能的工具、方法