问题标签 [perf]

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 投票
0 回答
313 浏览

profiling - 使用 perf 分析 D 程序时去除 D 符号

我刚刚在 Linux 上发现了出色的工具 perf。

我用这个描述了一个 D 程序,但是当我打电话时

符号没有被破坏。

我知道,ddemangle但这仅适用于批处理模式。我总是可以将输出转储到文件中以供查看。但是,如果有人在将符号添加到 perf 数据库文件之前找到了对符号进行解码的解决方案,那就太好了。

0 投票
1 回答
266 浏览

performance - The difference between exclude_hv and exclude_host in perf

In kernel 3.11.0, in the struct perf_event_attr, there are three members named exclude_hv/exclude_host/exclude_guest.

I know the exclude_host field is to exclude events generated by the host when running kvm. But what is the meaning of exclude_hv? Is it used in the Xen?
What is the mechanism in hardware that supports the function of exclude_host? As far as I know, in the performance monitoring select registers, there are no such bits that control the event counter to exclude events generated by the host.

0 投票
2 回答
1528 浏览

performance - 不同内核版本性能回归原因分析

我在 x86_64 系统上遇到了从 Linux 内核 3.11 到 3.12 的奇怪性能回归。在 Fedora 20 3.12 上运行Mark Stock 的 Radiance 基准测试明显变慢。没有其他任何改变 - 相同的二进制文件,相同的 glibc - 我只是启动了不同的内核版本,性能发生了变化。定时程序 rpict 是 100% CPU 绑定的用户级代码。

在我将此报告为错误之前,我想找出导致此行为的原因。我对 Linux 内核了解不多,从 3.11 到 3.12 的更改日志也没有给我任何线索。

我在两个系统上观察到这一点,一个 Intel Haswell (i7-4771) 和一个 AMD Richland (A8-6600K)。在 Haswell 系统上,用户时间从 3.11 的 895 秒变为 3.12 的 962 秒。在里奇兰,从 1764 年到 1844 年。这些时间可以在几秒钟内重复。

我用 perf 做了一些分析,发现 IPC 的下降与减速的比例相同。在 Haswell 系统上,这似乎是由于更多错过的分支造成的,但为什么预测率会下降呢?Radiance 确实使用了随机数生成器——“更好”的随机性会导致丢失的分支吗?但除了 OMAP4 支持之外,RNG 在 3.12 中似乎不需要更改。

在 AMD 系统上,perf 只是指向更多的空闲后端周期,但原因尚不清楚。

哈斯韦尔系统:

里奇兰系统:

我还查看了两个内核的 dmesg 输出的差异,但没有看到任何可能导致 CPU 密集型程序如此缓慢的任何东西。

我尝试将cpufreq调节器从默认的按需切换到性能,但这没有任何效果。

可执行文件是使用 gcc 4.7.3 编译的,但没有使用 AVX 指令。libm 似乎仍然使用一些 AVX(例如__ieee754_pow_fma4),但这些函数仅占总执行时间的 0.3%。

附加信息:

有什么想法(除了将内核更改一分为二)?

0 投票
3 回答
11161 浏览

profiling - perf.data 文件没有样本

我在 ubuntu 11.10 上使用 perf 3.0.4。它的记录命令运行良好,并显示在收集的终端 256 样本上。但是当我使用perf report时,它给了我以下错误:

我搜索了很多解决方案,但还没有成功。

0 投票
1 回答
2936 浏览

linux - 找出 CPU 有多少个硬件性能计数器

在运行 Linux 的 Intel 或 AMD x86-64 系统上,我在哪里/如何找到我的 CPU 拥有的硬件性能计数器的数量?

我想perf在执行某些应用程序时使用 Linux 工具来收集硬件性能计数器数据。perf wiki 的教程说,如果我指定(使用-e标志perf statperf record)比我的 CPU 中的性能计数器更多的硬件事件,那么这些事件将在执行期间在计数器上多路复用,从而允许它们在一个单一的perf命令,但可能会降低准确性,因为并非所有计数器都一直处于活动状态。(请注意,我在这里关注硬件事件,例如缓存和 TLB 行为 - 我知道可以跟踪大量/无限数量的内核软件跟踪点而不会不准确)。

如果我找到我的处理器型号,是否有英特尔/AMD 网站可以找到此信息?我可以在系统上运行一个简单的命令来检查硬件计数器的数量吗?我检查了 and 的输出cat /proc/cpuinfox86info -a但找不到此信息。

0 投票
0 回答
164 浏览

android - perf 不适用于某些命令?

我想使用 perf 来分析 Android 上的猴子命令,但我被困住了。

通常,当我运行以下命令时:

但是,当我想得到它的性能统计如下:

我得到:

猴子是一个命令,不是文件也不是目录。为什么我会得到这个?任何帮助将不胜感激!

谢谢你。大卫

0 投票
2 回答
1774 浏览

performance - 性能和英特尔 PCM 的差异

我知道英特尔s PCM and perf are available, do they use the same hardware counters?? However perf的原始硬件事件都不清楚,英特尔的 PCM 提供了更多的功能。我可以使用 PCM 以某种方式监控单个进程,如 perf 吗?我知道这可以在 VTune 上完成,但它是专有的。我目前正在开发 ubuntu 12.04。

0 投票
2 回答
20249 浏览

kernel - perf:无法记录内核引用重定位符号

我已经perf为我的内核(3.11.10)编译了。在编译过程中,一些库丢失了,所以我已经安装了这些。

但是现在当我运行时perf,我收到以下消息:

由于我使用的是自定义构建内核,对我来说最明显的解释是,我的内核中缺少某些选项。如果是这样,我怎样才能找出丢失的内容?

我不确定到底perf在抱怨什么。我怎样才能解决这个问题?

编辑:

/proc/kallsyms不存在且/proc/sys/kernel/kptr_restrict包含0

我自己编译了内核,它可能缺少一些选项。这是什么/proc/kallsyms?如何在我的内核中启用它?

0 投票
1 回答
472 浏览

android - android 上的 perf 工具不会传递结果

我设置了以下内核配置并构建了内核。并使用http://kwangwoo.blogspot.in/2011/11/performance-monitoring-on-arm.html在 kernel/tools/perf 中单独构建 perf

但我得到的大多数东西都是 0。

但我得到的大多数计数器都是 0。

我在nexus 4设备上做到了这一点。可能是什么问题呢?有人可以帮忙吗?

0 投票
0 回答
610 浏览

android - Oprofile在Android上的成功?

我想知道,有没有人成功地为 Android 配置了 oprofile?具体来说,测量硬件计数器事件(不是标准的 oprofile 基于定时器中断的模式)。

如果是这样,您使用的是什么型号的手机,以及哪个内核版本/分支?

这篇文章(Android 上的 OProfile)有点解决我的问题,但它只列出了一个在 Andriod 上的 oprofile 成功案例。特别是,我想看看是否有人知道有很多内置支持 oprofile 的模型或架构(我的经验是,例如,OMAP4 处理器很难为其构建 oprofile)。

如果有人让性能分析器工作,我也很感兴趣,作为替代方案。