问题标签 [oprofile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1703 浏览

c - OPROFILE 无法获取性能数据

我正在使用 OPROFILE 来收集一些性能数据。但我遇到了麻烦。

这是我的外壳:

0 投票
1 回答
1833 浏览

c++ - 为什么我的程序在 _fini 中花费了 85% 的 CPU 周期?

使用 oprofile 分析我的程序后,我有点惊讶。

配置文件显示我的程序在以下方面花费了 85% _fini

CPU:Intel Core/i7,速度 1199 MHz(估计) 计数 CPU_CLK_UNHALTED 事件(未停止时的时钟周期),单位掩码为 0x00(无单位掩码)计数 100000 个样本 % 图像名称符号名称 553519 85.7402 eddic _fini

其他符号看起来不错。

我的程序是用 GCC 4.7 编译的。

据我了解,该符号_fini是用于全局破坏的已弃用构造,因此我不明白为什么我的程序会在此符号上花费这么多时间。

这可能是由于 oprofile 或 GCC 的错误配置造成的吗?

我试图分析未优化的代码,但问题不存在。没有没有优化的符号。

有没有办法修复配置文件或避免花这么多时间_fini

我不能粘贴我的粘贴,因为它很长,我没有隔离问题。

感谢您的任何想法

0 投票
3 回答
2685 浏览

valgrind - 需要重新编译的分析器和不需要重新编译的分析器有什么区别?

使用需要使用调试选项重新编译源代码的分析器(如 gprof)和不需要重新编译的分析器(如 Valgrind、OProfile...)之间有什么区别?

0 投票
1 回答
313 浏览

linux - Oprofile 警告“无法检查二进制文件”

我们使用 Oprofile 对内核模块进行分析,并且在 opreport 中有如下警告

任何人都可以解释什么是警告,它会影响 oprofile 输出的准确性吗?无论如何可以避免这个警告吗?

任何建议表示赞赏。非常感谢!

添加更多信息:在daemon/opd_mangling.c

对于内核模块文件,sf->kernel->name是内核模块名称,所以填充头将始终填充mtime为 0 并生成不需要的警告

0 投票
2 回答
837 浏览

c - 多核和 OProfile

线程感知/安全(意味着我可以安全地分析多线程应用程序),如果是oprofile,与 有什么区别perf

0 投票
0 回答
377 浏览

linux - ftrace函数统计和oprofile的区别

有人可以比较ftrace统计数据oprofile吗?我们观察到以下现象:

  • 在网络性能测试期间启用,我们发现使用 ftrace profiler ( ) 对性能测试的影响很小(与未启用oprofile的情况相比),oprofileCONFIG_FUNCTION_PROFILER
  • 当我们启用分析器时,网络测试的性能下降了大约 90%。
  • 有很多函数在oprofilereport中采样的比较少,但是在ftrace profile的report中,执行起来需要很多时间(大部分都是skb_allocand skb_free)。

如果您之前使用过这两种分析,请对它们的准确性提出建议?

0 投票
1 回答
3076 浏览

linux - 使用 perf_events/oprofile 在 Linux 上分析 JIT 的输出?

我想使用硬件性能计数器来分析由 Linux 上的 JIT 生成的代码。据我所知,最常见的分析器是oprofileperf

如何集成 JIT 和 oprofile/perf?

我的 JIT 不是 oprofile 已经支持的 JAVA。(性能?)

例如,我们可以考虑 LLVM 的 JIT。我想要

  1. 查看 JIT-ted 代码中最热门的函数(它们的名称)
  2. 查看最热门函数的反汇编,并为每条指令分配性能计数器统计信息
0 投票
0 回答
563 浏览

c++ - oprofile 可以忽略对外部函数的调用,而是将时间累积给调用者吗?

我目前正在使用以下参数调用 oprofile:

例如,输出为:

您可以看到大部分时间都花在了__memset_sse2其中,但我自己的代码应该优化哪一个并不明显。至少不是来自上面的输出。

在我的具体情况下,我能够通过使用某种穷人的探查器来快速定位问题的根源。我在调试器中运行程序,不时停止它并查看每个线程的调用堆栈。

是否可以直接从 oprofile 的输出中获得相同的结果?如果性能瓶颈不像我的示例那样明显,那么我使用的策略很可能会失败。

是否有一个选项可以忽略对外部函数的所有调用(例如,对内核或 libc),而只是将时间累积给调用者?例如:

foo在这里,我在分析输出的顶部看到会更有洞察力,而不是memset.

(我试过opreport --exclude-dependent但发现它没有帮助,因为它似乎只是跳过了输出中的外部函数。)

0 投票
1 回答
145 浏览

profiling - 通过 Oprofile 在每个函数中消耗的周期

Oprofile 致力于基于采样的理论。Opreport -l 选项通过以下方式为我们提供分析报告:

有了这些信息,我可以知道消耗时间的百分比。如果我在我的代码中做一些优化,我会再次得到报告:

在这份报告中,我没有得到多少周期优化已经完成,以便我可以进行基准测试。到目前为止已经做了多少优化?

有什么方法可以知道已经完成了多少周期优化,或者我可以通过任何其他方式进行基准测试?

我正在使用 AMD64 位机器。

0 投票
1 回答
1319 浏览

linux - oprofile 0.9.8 在带有 Pentium D 的 Ubuntu 12.10 下失败

我正在尝试在奔腾 D 处理器(戴尔 OptiPlex-GX620 桌面)上运行的 Ubuntu 12.10 下使用 oprofile 0.9.8。当我尝试像“operf ls”这样简单的事情时,我得到了

通过安装带有 timer=1 的模块(见下文),我在 sudo 下使用 opcontrol 命令成功地在传统模式下运行 oprofile。

operf 似乎对这种配置不满意——这是新的首选方法。

我已经验证所有依赖包都已加载。

在 oprofile 网站上,他们没有将 pentium D 称为单独的架构,因此不确定它是否使用常规的 Pentium 架构。

我到处搜索,找不到这样的报道。任何帮助将不胜感激在此处确定问题。

PS 当我使用 opcontrol 以传统模式运行时,我取得了一些成功: