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 ...
最新文章
- 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发
- sdut 3363 驴友计划
- 如何将本地jar包上传到maven私服中
- 分类模型的评估方法-精确率(Precision)
- CFileDialog的基本使用
- Linux有趣小工具命令,终端中的乐趣:6个有趣的Linux命令行工具
- winafl 源码分析
- DateFormat是线程不安全
- html5 上海,【上海校区】HTML5新特性
- 数据降维降维(二)----Laplacian Eigenmaps
- 菜单、toast、对话框的使用
- 2016 CCF-CSP 计算机职业资格认证考试 解题报告
- 【Gitee】本地push代码成功,但是不计入贡献度贡献值,该怎么处理(已解决 同理github gitlab)
- 利用Puppeteer来标准化抓站新闻格式
- python把数据生成图表_python从Oracle读取数据生成图表
- 学习前端——仿写哔哩哔哩直播部分
- 07 Anykey图像优化及文字头像生成与加载
- Vultr能Ping通但SSH无法连接
- 家用计算机手抄报,大学计算机作业手抄报
- “创新雷神号”卫星成功发射,华为云分布式云原生“天地一体”首次组网成功
热门文章
- DATEADD() 函数
- git 拉取远程分支到本地(最简单方式)
- 【转】word自动编号变成黑块儿的原因及解决方案
- docker 查看容器启动日志 查看运行日志
- phpmailer 私密抄送_phpmailer发送邮件(附件)
- GSM模块(SIM900)详解
- 用PIL实现滤镜(一)——素描、铅笔画效果
- 美图秀秀-拼图效果,UIView的clipsTobounds (后续的回头再加)
- 使用PDH性能计数器(Windows)获取CPU使用率、可用物理内存、上传/下载速率、磁盘读写速率
- Vscode+python+flake8 安装 配置 使用