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. 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发
  2. sdut 3363 驴友计划
  3. 如何将本地jar包上传到maven私服中
  4. 分类模型的评估方法-精确率(Precision)
  5. CFileDialog的基本使用
  6. Linux有趣小工具命令,终端中的乐趣:6个有趣的Linux命令行工具
  7. winafl 源码分析
  8. DateFormat是线程不安全
  9. html5 上海,【上海校区】HTML5新特性
  10. 数据降维降维(二)----Laplacian Eigenmaps
  11. 菜单、toast、对话框的使用
  12. 2016 CCF-CSP 计算机职业资格认证考试 解题报告
  13. 【Gitee】本地push代码成功,但是不计入贡献度贡献值,该怎么处理(已解决 同理github gitlab)
  14. 利用Puppeteer来标准化抓站新闻格式
  15. python把数据生成图表_python从Oracle读取数据生成图表
  16. 学习前端——仿写哔哩哔哩直播部分
  17. 07 Anykey图像优化及文字头像生成与加载
  18. Vultr能Ping通但SSH无法连接
  19. 家用计算机手抄报,大学计算机作业手抄报
  20. “创新雷神号”卫星成功发射,华为云分布式云原生“天地一体”首次组网成功

热门文章

  1. DATEADD() 函数
  2. git 拉取远程分支到本地(最简单方式)
  3. 【转】word自动编号变成黑块儿的原因及解决方案
  4. docker 查看容器启动日志 查看运行日志
  5. phpmailer 私密抄送_phpmailer发送邮件(附件)
  6. GSM模块(SIM900)详解
  7. 用PIL实现滤镜(一)——素描、铅笔画效果
  8. 美图秀秀-拼图效果,UIView的clipsTobounds (后续的回头再加)
  9. 使用PDH性能计数器(Windows)获取CPU使用率、可用物理内存、上传/下载速率、磁盘读写速率
  10. Vscode+python+flake8 安装 配置 使用