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操作入门相关推荐

  1. linux程序分析工具下载,linux 程序分析工具

    http://blog.csdn.net/denny_233/article/details/7477282 2012 linux程序分析工具介绍(一)--"/proc" 写在最前 ...

  2. linux程序测试工具gprof,Linux下gprof和oprofiling性能测试工具

    一.简介 有些时候,我们特别关注程序的性能,特别是底层软件,比如驱动程序,OS等.为了更好的优化程序性能,我们必须找到性能瓶颈点,"好钢用在刀刃上"才能取 得好的效果,否则可能白做 ...

  3. linux程序测试工具gprof,gprof-如何在Linux上分析多线程C ++应用程序?

    gprof-如何在Linux上分析多线程C ++应用程序? 我曾经使用gprof进行所有Linux分析. 但是,对于我的多线程应用程序,它的输出似乎不一致. 现在,我将其挖掘出来: [HTTP://S ...

  4. Linux串口测试工具

    Linux串口测试工具 Windows 下的串口工具非常多,Linux下的串口工具相对较少,有时候要调试给定串口通信可靠性,则需要搜索一圈才能找到易用方便且满足自己的需求的工具. 无意中发现 linu ...

  5. Web应用程序测试工具Top20

    Web应用程序测试工具可提高可靠性,缩短周转时间并提高ROI. 它们是各种类型的工具,可以协助从需求捕获到测试管理等各种Web测试活动.以下是包含主要功能和下载链接的顶级Web测试工具的精选列表. 下 ...

  6. window linux传输工具,window与linux文件传输工具,linux文件传输

    window与linux文件传输工具,linux文件传输 window与linux文件传输工具 [一般用于SecureCRT ssh中使用] 法一:直接用yum安装lrzsz(推荐) yum inst ...

  7. linux mysql 测试工具_LINUX系统下MySQL 压力测试工具super smack

    LINUX系统下MySQL 压力测试工具super smack 发布时间:2008-09-08 17:03:39   作者:佚名   我要评论 1. 源文件下载地址:http://vegan.net/ ...

  8. linux gpu 测试工具,推荐 7 大 Linux GPU 监控和诊断命令行工具

    原标题:推荐 7 大 Linux GPU 监控和诊断命令行工具 作者:Linux迷 链接:https://www.linuxmi.com/7-linux-gpu-jiankong.html 视频卡是一 ...

  9. linux 包管理工具dnf,Linux 程序包管理 rpm yum dnf

    Linux程序包管理:包管理器功能:打包,包管理(安装,升级,卸载,查询,校验) 目前Linux中最常见有两种常用工具deb:debian Linux使用 包括ubuntu rpm:Redhat Pa ...

最新文章

  1. ajax入门实例代码,AJAX、AJAX实例及AJAX源代码
  2. Android Camera MSM HAL
  3. [入门]MyEclipse+tomcat搭建java web环境
  4. 周涛:悠扬事业后的隐秘爱情
  5. 如何删除本地分支_如何上传项目到GitHub
  6. 宜居指数c语言,城市功能日趋完善宜居指数持续提升
  7. Java编程风格与命名规范整理(转载)
  8. HDU1251 统计难题 trie树
  9. 微型计算机原理及应用论文,微型计算机原理及应用7030112997-TP19300101.pdf
  10. 野火i.MX Linux开发实战指南
  11. 采用静态编译方式防止易语言小程序被误杀
  12. 禧龙字王 v1.0 beta 4 服务器版 是什么
  13. keras LSTM实现imdb电影评论文本二分类
  14. CTF练习题——bugkuCTF 网站被黑题目思路分析
  15. linux报错的Syntax error “(“ 的解决方法
  16. Halcon|通过旋转前后3维坐标点求旋转轴及旋转角度
  17. learning and evaluating representations for deep one-class classification
  18. Android爬虫(一)使用OkHttp+Jsoup实现网络爬虫
  19. 记录一次canvas小白做相册功能的过程
  20. Activiti 7.1.7 系列(3)请假流程

热门文章

  1. htmlinput标签iPhone键盘不隐藏问题
  2. 只需三步,完美卸载Docker
  3. CMake error:System Error:No such file or directory CMake error:Could not open file for write in copy
  4. 网页播放flash没有声音和Firefox无法安装插件的问题
  5. Ensemble_learning 集成学习算法 stacking 算法
  6. VS Code -- Live Server
  7. mysql unix时间加索引_【mysql】mysql时间字段怎么加索引
  8. 国务院通知明确2008年节假日具体安排
  9. 小礼盒礼金卡接口分享
  10. 冶金物理化学复习【5】--- 正规溶液