网站大量收购独家精品文档,联系QQ:2885784924

性能查看工具Orofile的使用.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
性能查看工具Orofile的使用

Linux性能分析工具 ——gprof和Oprofile 简介 为了分析程序的性能,找出系统性能瓶颈点,有必要用相应的性能分析工具对系统的性能进分析。Linux上常用的性能分析工具有gprof和oprofile。 Gprof一般用于对用户态的程序进行简单分析 Oprofile 功能较强大适合于对复杂系统的分析 GGprof的介绍 gprof是GNU工具之一,它在编译的时候在每个函数的出入口加入了profiling的代码,运行时统计程序在用户态的执行信息,可以得到每个函数的调用次数,执行时间,调用关系等信息,简单易懂。适合于查找用户级程序的性能瓶颈,对于很多时间都在内核态执行的程序,gprof不适合。Gprof的安装与使用 gprof是gnu binutils工具之一,默认情况下linux系统当中都带有这个工具。–g –pg –o hello hello.c 运行hello,在当前目录下会产生gmon.out文件 结果分析一般有三种方式 gprof hello gmon.out -p 得到每个函数占用的执行时间 gprof hello gmon.out -q 得到call graph,包含了每个函数的调用关系,调用次数,执行时间等信息。 gprof hello gmon.out -A 得到一个带注释的“源代码清单”,它会注释源码,指出每个函数的执行次数。这需要在编译的时候增加 -g选项。profile也是一个开源的profiling工具,它使用硬件调试寄存器来统计信息,进行profiling的开销比较小,而且可以对内核进行profiling。它统计的信息非常的多,可以得到cache的缺失率,memory的访存信息,分支预测错误率等等,这些信息 gprof是得不到的,但是对于函数调用次数,它是不能够得到的。 Oprofile可以帮助用户识别诸如循环的展开、高速缓存的使用率低、低效的类型转换和冗余操作、错误预测转移等问题。它收集有关处理器事件的信息,其中包括TLB的故障、停机、存储器访问、位于 DCU(数据高速缓存单元)中的总线路数、一个 DCU 故障的周期数,以及不可高速缓存的和可高速缓存的指令的获取数量。Oprofile是一种细粒度的工具,可以为指令集或者为函数、系统调用或中断处理例程收集采样。Oprofile 通过取样来工作。使用收集到的评测数据,用户可以很容易地找出性能问题。 Oprofile的安装 Oprofile的运行需要一个内核态module和一个用户态的daemon程序。对于Linux2.6.x的内核已经集成了该module。 在安装oprofile之前,通过命令: cat /boot/config-`uname -r` | grep OPROFILE 查看内核包含了oprofile模块,如果出现 CONFIG_HAVE_OPROFILE=y CONFIG_OPROFILE=m 这表示打开了OPROFILE,而且oprofile被编译成了一个module CONFIG_HAVE_OPROFILE=y CONFIG_OPROFILE=m 表示支持OPROFILE,而且oprofile被编译进了内核 如果系统已经打开了oprofile,则不需要重新编译内核 下载oprofile软件包,并用tar解压 ./configure --with-linux=/usr/src/linux/ --with-qt-dir=/usr/lib/qt/ --with-kernel-support make make installoprofile 安装完成后会生成以下工具集: /usr/bin/oprofiled 守护进程 /usr/bin/opcontrol 控制前端,负责控制与用户交互,用得最多 /usr/bin/opannotate 根据搜集到的数据,在源码或者汇编层面上注释并呈现给用户 /usr/bin/opreport 生成二进制镜像或符号的概览 /usr/bin/ophelp 列出 oprofile 支持的事件 /usr/bin/opgprof 生成 gprof 格式的剖析数据 opstack : 产生调用图 profile ,但要求 x86/2.6 的平台,并且 linux2.6 安装了 call-graph patch oparchive : 将所有的原始数据文件收集打包,可以到另一台机器上进行分析。 op_import : 将采样的数据库文件从另一种 abi 转化成本地格式。 Oprofile使用 初始化 Sudo opcontrol --init 该命令会加载 oprofile.ko 模块, mount oprofilefs 成功后会在 /dev/oprofile/ 目录下导出些文件和目

您可能关注的文档

文档评论(0)

icz049 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档