问题标签 [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.
linux - 是否有任何类似的 Linux 工具可以像 Mac OS X 上的 Shark 一样工作?
Mac OS X 上的Shark是一个很好的工具,用于分析正在运行的系统上的应用程序。Linux 有没有类似的工具?
OProfile看起来可以,有人用过吗?
c - 从 oprofile 获得最有用的输出的最佳方法是什么?
使用以下工具:
- 报告
- 操作控制
- 注释
我开始使用这个工具,并试图找到最佳组合、示例以充分利用分析。
谢谢
android - 安卓上的OProfile
有没有人在 android 上使用过 OProfile 工具...如果您能够配置文件,请提供基本步骤和任何其他配置或设置以执行此操作...
问候, 巴拉特帕瓦尔
c++ - 基于 Linux 时间样本的分析器
精简版:
Linux 是否有一个好的基于时间的采样分析器?
长版:
我通常使用OProfile来优化我的应用程序。我最近发现了一个让我感到疑惑的缺点。
问题是一个紧密的循环,产生了 c++filt 来破坏 c++ 名称。我只是在寻找另一个瓶颈时偶然发现了代码。OProfile 没有显示代码有任何异常,所以我几乎忽略了它,但我的代码意识告诉我优化调用并查看发生了什么。我将popen
c++filt 更改为abi::__cxa_demangle
. 运行时间从一分钟多到一秒多一点。大约 x60 加速。
有没有办法我可以配置 OProfile 来标记popen
呼叫?由于配置文件数据现在存在,OProfile 认为瓶颈是堆和std::string
调用(顺便说一句,它曾经优化过将运行时间降低到不到一秒,超过 2 倍加速)。
这是我的 OProfile 配置:
是否有另一个 Linux 分析器可以找到瓶颈?
我怀疑问题在于 OProfile 仅将其样本记录到当前运行的进程中。我希望它始终将其样本记录到我正在分析的过程中。因此,如果进程当前被切换(阻塞 IO 或popen
调用),OProfile 只会将其样本放在被阻塞的调用中。
如果我不能解决这个问题,OProfile 只有在可执行文件接近 100% CPU 时才有用。对于阻塞调用效率低下的可执行文件,它无济于事。
performance - 测量选定循环的执行时间
我想测量 C 程序中选定循环的运行时间,以便查看在这些循环中花费了执行程序(在 linux 上)的总时间的百分比。我应该能够指定应该测量性能的循环。在过去的几天里,我尝试了几种工具(vtune、hpctoolkit、oprofile),但似乎都没有。他们都发现了性能瓶颈,并只是展示了那些时间。那是因为这些工具只存储高于阈值(~1ms)的时间。因此,如果一个循环花费的时间少于此时间,则不会报告其执行时间。
gprof 的基本块计数功能取决于旧编译器中现在不支持的功能。
我可以手动编写一个简单的计时器使用gettimeofday
或类似的东西,但在某些情况下它不会给出准确的结果。例如:
现在在这里我想测量花费在内部循环中的总时间,我必须gettimeofday
在第一个循环中调用。所以gettimeofday
它自己会被调用 1000 次,这会引入自己的开销,结果会不准确。
performance - oprofile 无法生成调用图
我正在尝试使用 oprofile 来生成调用图。编译器是g++,平台是linux x86-64,链接器是gfortran
C++ 代码使用 -fno-omit-frame-pointer 编译。oprofile 以 --callgraph=25 开头。报告我使用 --callgraph 运行。
调用图已生成,但它只包括自我时间,没有多大用处
我错过了什么?
linux - Oprofile中的基本疑问
我正在尝试使用 oprofile 分析我的软件(在 Linux 中)。我的软件由用户空间和内核模块组成。首先我的疑问是 --separate=kernel 选项有什么作用?没有该选项运行时会有什么区别?我确实试图看到它,但找不到任何区别。你能举个例子吗?
我不能在没有 --seperate=kernel 选项的情况下分析内核模块吗?
谢谢,巴拉
profiling - oprofile 无法在 ARM 上生成调用图
这实际上是这个 SO question 的完全重复,不幸的是没有任何答案。是否有可能在 ARM 上获得正确的调用图?我在没有性能计数器的 ARM926 上使用 oprofile 0.9.6,因此 oprofile 默认使用定时器中断,我设置了 --callgraph 选项,并且我的应用程序使用正确的标志编译。我不是在尝试分析内核,但我想知道是否必须在启用“framepointer”的情况下编译内核才能从我的应用程序中获得正确的调用图。
谢谢
profiling - 在虚拟机中运行的 Linux 上的 oprofile
我正在使用 VirtualBox 运行 Linux Ubuntu 10.4 VM。我正在尝试使用 oprofile 来分析虚拟机中的某些应用程序。我已经安装了 oprofile 0.9.6,但我无法让它工作。当我尝试启动时,出现以下错误:
因为我不确定VirtualBox是否可以提供对性能计数器的访问(我在这里有疑问,所以如果你有任何指针那就太好了)我将oprofile默认为定时器中断,如下所示:
但仍然无法正常工作,我遇到了同样的错误。甚至可以在虚拟机中运行 oprofile 吗?
谢谢