Linux测试工具详解
来源:互联网 发布:unity3d游戏开发pdf 编辑:程序博客网 时间:2024/05/17 21:40
Linux下的测试工具
1-Gprof
2-Oprofile
3-PAPI :A Portable Interface to Hardware Performance Counters
这里,我们目前只简单介绍这3种测试工具
1、Gprof
gprof是GNU工具之一,它在编译的时候在每个函数的出入口加入了profiling的代码,运行时统计程序在用户态的 执行信息,可以得到每个函数的调用次数,执行时间,调用关系等信息,简单易懂。适合于查找用户级程序的性能瓶颈,对于很多时间都在内核态执行的程序,gprof不适合。
http://sourceware.org/binutils/docs-2.17/gprof/index.html
步骤:
1.gcc编译程序时,加上-pg选项,产生带profiling代码的可执行文件
2.执行编译后的可执行文件,产生可供gprof分析的gmon.out文件
3.gprof gmon.out可执行文件,进行关联分析
---------------------------------------------------------------------------------------------
2、oprofile
是一个开源的profiling工具,它使用硬件调试寄存器来统计信息,进行profiling的开销比较小,而且可以对内核进行profiling。它统计的信息非常的多,可以得到cache的缺失率,memory的访存信息,分支预测错误率等等,这些信息gprof是得不到的,但是对于函数调用次数,它是不能够得到的。
http://oprofile.sourceforge.net/news/
download->./config->make all && make modules_install && make install
将其中的# CONFIG_OPROFILE is not set改为CONFIG_OPROFILE=m(或者y)
步骤:
- opcontrol --init #加载模块
- opcontrol --vmlinux=/usr/src/linux-3.11.0/vmlinux #是否对kernel进行profiling
- opcontrol --reset #清楚当前会话中的数据
- opcontrol --start #开始profiling
- ./xxx #运行应用程序,oprofile会对它进行profiling
- opcontrol --dump #把收集到的数据写入文件
- opcontrol --stop #停止profiling
- opcontrol --shutdown #关闭守护进程oprofiled
- opcontrol --deinit #卸载模块
http://blog.chinaunix.net/uid-13746440-id-3152484.html
---------------------------------------------------------------------------------------------
3、PAPI: A Portable Interface toHardware Performance Counters
PAPI主要测试硬件方面的性能,诸如cache命中率等,就像显微镜一样,可以让我们对应用程序的底层有一个更细致的了解
PAPI的官方网址:http://icl.cs.utk.edu/papi/index.html
该网站上有PAPI的下载地址和详尽的使用帮助文档。其安装过程可以根据文档上一步步来即可。
安装完之后,使用papi_avail命令可以获得详细的系统硬件信息以及PAPI所支持的硬件测试事件,PAPI的标准编程接口或流程如下:
其中黄色框框为PAPI提供的标准接口。
测试结果如下:
---------------------------------------------------------------------------------------------
总结:
gprof简单,适合于查找用户级程序的瓶颈
oprofile稍显复杂,但是得到的信息更多,更适合调试系统软件
PAPI简单易用,功能强大
gprof和PAPI都有使用过,oprofile没有使用经验
后期如果有什么好的测试工具,会继续连载,并欢迎讨论交流
---------------------------------------------------------------------------------------------
0 0
- Linux测试工具详解
- linux内存测试工具memtester使用详解
- 性能测试分析工具-linux top命令详解
- 性能测试分析工具-linux top命令详解
- Android测试工具详解
- 【测试工具】Linux限流工具
- Linux 测试工具
- linux性能测试工具
- Linux性能测试工具
- Linux服务器测试工具
- Linux性能测试工具
- linux 测试工具
- linux 测试工具
- linux 性能测试工具
- linux压力测试工具
- Linux性能测试工具
- LTP--Linux 测试工具
- Linux性能测试工具
- 父类委托机制[2]父类委托机制真的安全吗
- PCA SVD LDA --- Machine Learning笔记1
- Tomcat多应用共享Session
- 二叉树
- caffe深度学习网络(.prototxt)可视化工具
- Linux测试工具详解
- Java多继承方法(名)冲突和成员内部类、局部内部类、静态内部类、匿名内部类
- Java直接插入排序
- MediaCodec解码aac,播放
- MySQL数据库性能测试的方法
- 散列表(hash)
- 样式注意事项
- 面试(技术篇)
- Zabbix学习之Server/Agent部署