首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪个分析器更准确: OProfile还是?

哪个分析器更准确: OProfile还是?
EN

Stack Overflow用户
提问于 2009-10-11 12:45:50
回答 1查看 5.6K关注 0票数 4

我找到了两个很棒的侧写员:

  • OProfile
  • Google性能工具

有人两次都试过吗?哪种更好些呢?

EN

回答 1

Stack Overflow用户

发布于 2011-11-10 17:19:25

oprofile更精确;它使用CPU性能监视(内置在硬件监控中的性能事件为100个);

libprofiler.so使用操作系统内核的setitimer - intreval计时器:

代码语言:javascript
复制
$ nm -D libprofiler.so | grep timer
     U getitimer
     U setitimer

据我所知,间隔计时器是由OS模拟的,它不能超过HZ (每秒100次,每秒1000次,或300次或250次)。我刚刚尝试了10000和100000,但有效速率是1000 (运行时的程序是2秒,只有~2000个样本从谷歌收集的cpu分析器)。这是我的HZ:

代码语言:javascript
复制
$ zgrep HZ= /proc/config.gz
CONFIG_HZ=1000

不知道这将如何在无痒内核上工作。

反过来,oprofile在CPU中使用特殊的硬件,这个硬件可以精确到几个刻度。它可以测量程序所在的位置,在CPU的每1000000或1000000个刻度处,并且这个值不绑定到OS设置。它不仅可以描述CPU的每一个N-刻度,而且还可以描述每一个N- L2缓存丢失或每一个N- jmp错误预测等.Pentium Pro之后的任何CPU中都有数百个硬件性能事件。

oprofile的另一个更好的方面是它可以分析任何东西,任何用户应用程序或所有用户应用程序或内核以及每个应用程序。

但是oprofile需要root才能使用它(AFAIK),它可以冻结您的系统,错误的使用;它需要在内核中启用(当内核构建时)。

谷歌工具更好的一面是:易于使用;良好的绘图和分析能力;不需要根本的工作。另外,google工具中有一个很好的堆分析器。

oprofile和google-perftools/cpuprofiler:

  • 不需要重新编译应用程序(与gprof/gcov一样)
  • 可以绘制部分调用图(就像在kcachegind中所做的那样,例如1 2;pprof甚至可以通过callgrind命令进行绘制)
  • 将测量真实的轮廓(而不是模拟的,如kcache研磨机/based/其他基于valgrind的)
  • 可移植(oprofile需要来自CPU和CPU的支持,但它是为intel/amd/via/多臂提供的;无论在何处,它都可以获得调用堆栈并要求OS安装setitimer)。
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1550615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档