问题标签 [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 投票
1 回答
635 浏览

linux - Oprofile 和 gprof 输出因相同代码而异

我正在运行我的代码 AMD optron 6270 机器。操作系统是 Centos 6.2 版本。我做了一个简单的程序

在使用 gprof 和 Oprofile 分析此代码时。我得到了不同的报告。假设我使用 gprof 运行 main.exe 两次:第一次使用 gprof 平面配置文件报告:

每个样本计为 0.01 秒。

与 gprof 的第二次报告

扁平型材:

每个样本计为 0.01 秒。

% 累计 self 总
时间 seconds seconds 呼叫 s/呼叫 s/呼叫名称

两份报告都不同。每次我运行我的 main.exe 时,我都会得到不同的分析报告。当我尝试 Oprofile 时,我也得到了不同的结果:

Oprofile report1 使用 /var/lib/oprofile/samples/ 作为示例目录。警告:找不到 /no-vmlinux。CPU:AMD64 family15h,速度 2.2e+06 MHz(估计) 计数 CPU_CLK_UNHALTED 事件(CPU 时钟未停止),单位掩码为 0x00(无单位掩码)计数 100000

Oprofile 报告2

使用 /var/lib/oprofile/samples/ 作为示例目录。警告:找不到 /no-vmlinux。CPU:AMD64 family15h,速度 2.2e+06 MHz(估计) 计数 CPU_CLK_UNHALTED 事件(CPU 时钟未停止),单位掩码为 0x00(无单位掩码)计数 100000

样本 % 图像名称 符号名称

谁能告诉他们为什么会这样?造成这种情况的可能原因是什么?如何避免这种情况,以便获得持续的分析结果?

0 投票
2 回答
2048 浏览

linux - Oprofile callgraph:系统调用的起源

我一直在使用 oprofile 试图找出为什么我的程序在内核中花费了这么多时间。我现在有来自内核的符号,但显然我的程序和内核之间没有链接可以告诉我我的程序的哪些部分花费了这么长时间。

我从这里去哪里?如何发现程序中导致 __ticket_spin_lock 的位置?

0 投票
1 回答
1679 浏览

c++ - 如何从 oprofile 输出中获取调用堆栈?

我很混乱。我不知道 oprofile 是否甚至可以从分析报告中提供堆栈跟踪。我一直在查看 oprofile 手册,它只是通过说可以记录堆栈跟踪来引用堆栈跟踪,但它没有给出如何这样做的示例。

这是我的 test.cpp

这是我用来编译它的命令:

而且,这是我的 perf.sh 脚本(在 VM 中的 RHEL 6.2 上运行):

这是我目前收到的报告:

而且,我的问题是:如何让堆栈跟踪显示在分析报告中?

0 投票
1 回答
881 浏览

operating-system - 如何查找调试信息是否仅包含相对路径或绝对路径?

如何查找调试信息是否包含相对路径或绝对路径?

我正在尝试使用以下链接输出带注释的源(opannotate)。 http://oprofile.sourceforge.net/doc/opannotate.html

我想了解它,以便在 opannotate 中提供以下选项。

--base-dirs / -b [paths]/ 逗号分隔的路径前缀列表。当调试信息在系统上为不存在的源指定绝对路径时,这可用于将 OProfile 指向源文件的不同位置。前缀从调试源文件路径中去除,然后在 --search-dirs 指定的搜索目录中搜索。

--search-dirs / -d [paths] 逗号分隔的源文件搜索路径列表。当调试信息仅包含相对路径时,这对于查找源文件很有用。

谢谢。

0 投票
1 回答
338 浏览

linux - Intel i7 (Ivy Bridge) 上的 PMU 缓存事件

我正在使用 Oprofile 来分析一些基准,我正在专门寻找缓存问题。我使用英特尔 SDM 第 3 卷(自 2013 年 3 月起)作为选择要监控的事件的指南……但是这很痛苦……

我正在做实验的计算机是 i7 3630QM(即 Ivy Bridge),所以在手册中我正在查看表 19-1 和 19-5,问题是:我应该使用哪些事件来测量 L1 {D,I} 缓存事件?L3(有限责任公司)呢?真诚地,表 19-5 的事件描述比惯常的更模糊。

我的系统是 Ubuntu 13.04。

0 投票
1 回答
155 浏览

tizen - Opreport 不显示结果

根据http://lbrandy.com/blog/2008/11/oprofile-profiling-in-linux-for-fun-and-profit/教程,我正在尝试使用以下命令查看 oprofile 的结果:

我也试过:

我得到的只是这个:

有谁知道这些奇怪消息的原因是什么?

0 投票
1 回答
363 浏览

bash - 使用 MPI 运行 Oprofile

我在使用 Oprofile 来分析我通过调用的并行程序时遇到问题mpirun。我想使用的命令是:

不幸的是,当我这样做时, operf 开始记录,但是当 MPI 程序完成时发生了一些有趣的事情 -operf似乎没有认识到它已经返回(MPI 产生的进程不再出现在htop,但operf仍然出现),并且事情只是挂起等待我打断他们。

有没有我可以传球的选项,operf或者mpirun可以让两人一起打得很好?operf如果做不到这一点,当我的 MPI 程序完成时,是否有一个 bash 技巧可以用来自动终止?

编辑:以前认为它 Oprofile 并不总是产生结果,但事实证明我只是感到困惑并且看错了位置。唯一的问题是 operf 无法识别 MPI 程序已终止。

0 投票
1 回答
56 浏览

performancecounter - oprofile 更清晰的标签

我正在使用ocountoprofile 套件中的工具来计算三个不同的硬件性能计数器:

问题是因为三个计数器共享一个前缀,所以输出是令人讨厌的模棱两可。

给定命令行的顺序是正确的,但是如果我在对其他计数器进行实验时将所有这些内容转储到文件中,则可能会忘记什么是计数器。

查看ocount联机帮助页,我似乎无法找到强制它给出完整事件名称的方法。

补充

查看源代码,我实际上不确定这是可能的,因为上面的三个事件只是同一个计数器上的掩码,源代码的计数打印部分似乎只处理事件名称,而不是掩码名称。

唉(但很想被证明是错误的)。

0 投票
1 回答
208 浏览

android - Android 设备上的 Oprofile 错误。oprofiled:传递的事件过多

我在我的 MDP 上使用 oprofile。Android 4.3 用户调试版。

#opcontrol --设置

#oprofiled --vmlinux=/data/vmlinux --kernel-range=c00080ernel-range=c00080 --event=CPU_CYCLES

oprofiled:通过的事件太多。

# opcontrol --status
驱动目录:/dev/oprofile

会话目录:/data/oprofile

计数器 0:名称:CPU_CYCLES 计数:150000 计数器 1:名称:CPU_CYCLES 计数:150000 禁用计数器 2

oprofiled 没有运行

但我只指定一个事件。为什么 oprofiled 说“通过了太多事件”

0 投票
1 回答
234 浏览

profiling - OProfile 样本是指自我还是包容?

OProfile 在平面报告中给出的样本,是函数本身的样本,还是函数本身的样本加上它调用的函数的样本?我试图查看文档、教程,但找不到具体的答案。我的感觉是它是自我的样本,更准确地说,是 CPU 为函数体执行指令而不是在它调用的函数中执行指令时的样本数。