- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
当使用统计执行分析器 OProfile 可视化我的 C 应用程序的调用图配置文件时,它多次包含以下警告。警告对我来说相当神秘:
warning: dropping hyperspace sample at offset 1af9 >= 2be8 for binary /home/myuser/mybinary
我在这样的 Xen 虚拟化环境中使用 OProfile:
modprobe oprofile timer=1
opcontrol --no-vmlinux
opcontrol --start
(wait for profiling data to accumulate)
opcontrol --stop
opreport --session-dir=/var/lib/oprofile --exclude-dependent --demangle=smart \
--symbols /home/myuser/mybinary --callgraph
最后一条命令的完整输出是:
Overflow stats not available
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
warning: dropping hyperspace sample at offset 84d0 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 7ac0 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 7d90 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 7ac0 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 7d90 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 8210 >= 79a0 for binary /home/myuser/mybinary
samples % symbol name
-------------------------------------------------------------------------------
之后它会打印看似合理的调用图数据。
“超空间”警告是什么意思?是什么原因造成的?它会影响分析结果吗?我该如何解决?
最佳答案
Maynard Johnson 在 a message to a mailinglist 中解释了这个警告:
There have been cases reported where samples recorded by the oprofile kernel driver appear to be attributed to the wrong binary, in particular if the sample rate is very high or when doing callgraph profiling (since callgraph profiling, like a high sample rate, also results in very high overhead of the oprofile kernel driver and overflows of its internal sample buffers). I suspect that's what you're running into. Unfortunately, this is a very insidious bug, and no one has been able to find the root cause yet. The kernel driver does report overflow counts of its internal buffers, and the oprofiled log prints those out. As a convenience, starting with oprofile 0.9.5, opreport will also print a warning when it finds non-zero overflow counts and suggests lowering the sampling interval.
I suggest looking in your /var/lib/oprofile/samples/oprofiled.log and find the overflow statistics for the above profile run (log entries are timestamped). If you're only seeing a few or a very small percentage (say, less than 3%), you can probably just ignore the anomalies. In general, to avoid/limit this kind of thing, you should profile at the lowest sampling rate practical, especially when you're doing callgraph profiling. So what do I mean by "practical"? Well, as with any sample-based profiler, oprofile is statistical in nature. And the more data points you have, the more confidence you have in the data. So for 100% confidence, you should (theoretically) profile with a count value of '1'. Not too practical, though, since your machine may appear to lock up because most of the work being done is recording samples. For cycles event profiling, you can probably use a count value of several million or so (on today's processors) and still be pretty confident of the da ta. For other events, it really depends on their frequency of occurrence.
关于c - OProfile 警告 'dropping hyperspace sample' 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9754844/
我尝试在我们的专有内核上设置 OProfile,但没有成功。内核基于:2.6.34.8,运行在mips74k CPU上。 可以这样做吗? 如果是这样,我真的很感激任何解释我应该采取的步骤的指南。 谢谢
我在带有 2 个至强 E5504 处理器的 IBM HS22 Blade 服务器上安装了 debian 5.0 linux 服务器。我发现 oprofile 无法在此设置上识别硬件性能计数器,只能使用
我正在使用 OPROFILE 收集一些性能数据。但是我遇到了麻烦。 这是我的外壳: ~ # rm -f /root/.oprofile/daemonrc ~ # opcontrol --setup -
oprofile 是线程感知/安全的(意味着我可以安全地分析多线程应用程序)吗?如果是,与 perf 有什么区别? 最佳答案 1 是的,oprofile 是线程感知的。 Verbatim from m
oprofile 项目还活着吗? 我知道它在默认的 linux 内核中仍然受支持并且用户空间实用程序可以工作(至少在我运行的 Arch linux 上),但是它的大部分文档似乎已经过时了? 在 Lin
我正在致力于为我们的嵌入式产品(ARM Cortex-A8)开发一套工具。我研究过的一些工具包括 LTTng、OProfile 和 Valgrind。有人可以简单描述一下 LTTng 和 OProfi
我正在尝试减少内核启动所需的时间,即从在 GRUB 中选择内核选项到启动 init() 所需的时间。我使用 OProfile 工具来分析我的定制内核。我该如何处理它的输出? 最佳答案 OProfile
有人在 android 上使用过 OProfile 工具吗...如果您能够分析,请提供基本步骤和任何其他配置或设置,以便执行此操作... 问候,巴拉特帕瓦尔 最佳答案 你可以使用 this very
我很困惑。我不知道 oprofile 是否甚至可以提供来自分析报告的堆栈跟踪。我一直在查看 oprofile 手册,它只通过说 they can be logged 来引用堆栈跟踪。 ,但它没有给出如
使用以下工具: 报告 操作控制 注释 我开始使用这个工具并试图找到最好的组合,例子来获得最重要的分析。 谢谢 最佳答案 gprof2dot是最令人惊叹的个人资料数据可视化工具。 opcontrol -
在我的主机(Ubuntu 15.04)上下载 oprofile 源代码后,由于某些原因,我需要自己构建二进制文件。 我输入以下命令来构建二进制文件 ./configure && make && mak
我最近尝试使用 OProfile 分析我的应用程序。收集到的数据对我来说已经很有值(value)了,但我很难准确解释它。在设置并运行 oprofile 的情况下运行我的应用程序后,我生成了报告并得到:
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我正在尝试使用 oprofile在大型实时应用程序中记录缓存未命中: $ sudo opcontrol --no-vmlinux --event=LLC_MISSES:100000 --session
我找到了两个很棒的分析器: OProfile Google Performance Tools 有没有人试过他们两个?哪个更好? 最佳答案 oprofile 更准确;它使用 CPU 性能监控(内置有
我正在为 arm 交叉编译 oprofile。 $ export CC=arm-linux-gnueabi-gcc $ export CXX=arm-linux-gnueabi-g++ $ expor
我需要用oProfile做一个8核服务器的性能统计分析,oProfile只能记录7核的事件吗?谢谢! 最佳答案 operf 手册页没有描述这样的选项(看起来像 perf record 命令的 --cp
我们使用 Oprofile 对内核模块进行分析,并且在 opreport 中有如下警告 warning: could not check that the binary file /lib/modul
我正在运行我的代码 AMD optron 6270 机器。操作系统是Centos 6.2 版本。我做了一个简单的程序作为 #include #include int calling (long a);
当使用统计执行分析器 OProfile 可视化我的 C 应用程序的调用图配置文件时,它多次包含以下警告。警告对我来说相当神秘: warning: dropping hyperspace sample
我是一名优秀的程序员,十分优秀!