linux程序测试工具gprof,Linux系统-耗时检测-gprof操作入门
Linux系统-耗时检测-gprof操作入门。
一定时间的输入的程序处理延时,现需测量程序中各个函数的耗时比例,找到性能瓶颈,使用gprof工具检测。
1. gprof的功能
gprof和oprofile对比
gprof:
GNU工具之一,默认linux系统中都带有这个工具
原理:编译时在每个函数的出入口加入profiling代码,运行时统计程序在用户态的执行信息,得到每个函数的调用次数,执行时间,调用关系等信息。
适用领域:
gprof简单易懂,适合于查找用户级程序的瓶颈 对很多时间在内核态执行的程序,gprof不适合
oprofile:
开源的profiling工具,2.6内核以上支持SMP系统带有
原理:使用硬件调试寄存器来统计信息,进行profiling的开销比较小,而且可以对内核进行profiling。统计的信息包括:cache的缺失率,memory的访存信息,分支预测错误率等,这些信息gprof是得不到的,但是oprofile不能得到函数调用次数。
适用领域:oprofile稍显复杂,但是得到的信息更多,更适合调试系统软件
2. gprof的使用
此处只介绍gprof的使用,oprofile的使用可参考官方站点:http://oprofile.sourceforge.net/about/
gprof的使用流程:
编译链接时加上-pg选项。一般我们可以加在 makefile中,如果需要得到带注释的源码清单,需要加-g选项
运行可执行程序(程序正常退出会在运行目录下生成gmon.out文件)
gprof工具分析gmon.out文件
gprof分析命令:
gprof -b:不再显示每个字段的详细描述
-p:只显示函数的调用图 call graph
-q:只显示函数的时间消耗列表
-e Name:不再显示函数Name及其子函数的调用图
可以添加多个-e标志,一个-e标志只能指定一个函数
-E Name:不再显示函数Name及其子函数的调用图
此标志类似于-e标志,但它在总时间和百分比时间的计算中排除了由函数Name及其子函数的耗时
-f Name:显示函数Name及其子函数的调用图
可以指定多个-f标志,一个-f标志只能指定一个函数
-F Name:显示函数Name及其子函数的调用图
类似于-f标志,一个-F标志只能指定一个函数,可以指定多个-F标志 但在总时间和百分比时间计算中仅使用所打印的例程的时间 -F标志覆盖-E标志
-z:显示使用次数为零的例程
按照调用计数和累积时间计算
3. gprof的检测示例
添加-pg和-g选项
gcc -g -pg -o test test.c
或
gcc -o test test.c -pg -g
运行可执行程序再分析gmon.out文件
./test
gprof test gmon.out -b
需要把它和产生它的应用程序关联起来 使用不同命令查看不同选项
或统一执行分析
gprof -b ./test gmon.out
使用不同命令查看不同选项
执行后的一个例子:gprof test gmon.out -b
函数执行耗时
函数调用图
函数名索引
linux程序测试工具gprof,Linux系统-耗时检测-gprof操作入门相关推荐
- linux程序分析工具下载,linux 程序分析工具
http://blog.csdn.net/denny_233/article/details/7477282 2012 linux程序分析工具介绍(一)--"/proc" 写在最前 ...
- linux程序测试工具gprof,Linux下gprof和oprofiling性能测试工具
一.简介 有些时候,我们特别关注程序的性能,特别是底层软件,比如驱动程序,OS等.为了更好的优化程序性能,我们必须找到性能瓶颈点,"好钢用在刀刃上"才能取 得好的效果,否则可能白做 ...
- linux程序测试工具gprof,gprof-如何在Linux上分析多线程C ++应用程序?
gprof-如何在Linux上分析多线程C ++应用程序? 我曾经使用gprof进行所有Linux分析. 但是,对于我的多线程应用程序,它的输出似乎不一致. 现在,我将其挖掘出来: [HTTP://S ...
- Linux串口测试工具
Linux串口测试工具 Windows 下的串口工具非常多,Linux下的串口工具相对较少,有时候要调试给定串口通信可靠性,则需要搜索一圈才能找到易用方便且满足自己的需求的工具. 无意中发现 linu ...
- Web应用程序测试工具Top20
Web应用程序测试工具可提高可靠性,缩短周转时间并提高ROI. 它们是各种类型的工具,可以协助从需求捕获到测试管理等各种Web测试活动.以下是包含主要功能和下载链接的顶级Web测试工具的精选列表. 下 ...
- window linux传输工具,window与linux文件传输工具,linux文件传输
window与linux文件传输工具,linux文件传输 window与linux文件传输工具 [一般用于SecureCRT ssh中使用] 法一:直接用yum安装lrzsz(推荐) yum inst ...
- linux mysql 测试工具_LINUX系统下MySQL 压力测试工具super smack
LINUX系统下MySQL 压力测试工具super smack 发布时间:2008-09-08 17:03:39 作者:佚名 我要评论 1. 源文件下载地址:http://vegan.net/ ...
- linux gpu 测试工具,推荐 7 大 Linux GPU 监控和诊断命令行工具
原标题:推荐 7 大 Linux GPU 监控和诊断命令行工具 作者:Linux迷 链接:https://www.linuxmi.com/7-linux-gpu-jiankong.html 视频卡是一 ...
- linux 包管理工具dnf,Linux 程序包管理 rpm yum dnf
Linux程序包管理:包管理器功能:打包,包管理(安装,升级,卸载,查询,校验) 目前Linux中最常见有两种常用工具deb:debian Linux使用 包括ubuntu rpm:Redhat Pa ...
最新文章
- ajax入门实例代码,AJAX、AJAX实例及AJAX源代码
- Android Camera MSM HAL
- [入门]MyEclipse+tomcat搭建java web环境
- 周涛:悠扬事业后的隐秘爱情
- 如何删除本地分支_如何上传项目到GitHub
- 宜居指数c语言,城市功能日趋完善宜居指数持续提升
- Java编程风格与命名规范整理(转载)
- HDU1251 统计难题 trie树
- 微型计算机原理及应用论文,微型计算机原理及应用7030112997-TP19300101.pdf
- 野火i.MX Linux开发实战指南
- 采用静态编译方式防止易语言小程序被误杀
- 禧龙字王 v1.0 beta 4 服务器版 是什么
- keras LSTM实现imdb电影评论文本二分类
- CTF练习题——bugkuCTF 网站被黑题目思路分析
- linux报错的Syntax error “(“ 的解决方法
- Halcon|通过旋转前后3维坐标点求旋转轴及旋转角度
- learning and evaluating representations for deep one-class classification
- Android爬虫(一)使用OkHttp+Jsoup实现网络爬虫
- 记录一次canvas小白做相册功能的过程
- Activiti 7.1.7 系列(3)请假流程
热门文章
- htmlinput标签iPhone键盘不隐藏问题
- 只需三步,完美卸载Docker
- CMake error:System Error:No such file or directory CMake error:Could not open file for write in copy
- 网页播放flash没有声音和Firefox无法安装插件的问题
- Ensemble_learning 集成学习算法 stacking 算法
- VS Code -- Live Server
- mysql unix时间加索引_【mysql】mysql时间字段怎么加索引
- 国务院通知明确2008年节假日具体安排
- 小礼盒礼金卡接口分享
- 冶金物理化学复习【5】--- 正规溶液