问题标签 [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 回答
411 浏览

arm - 如何使用 Krait CPU 获取第二个 Nexus7 的 perf_event 结果

全部。

我尝试使用 Krait CPU 在第二个 Nexus7 上获取 PMU 信息,例如指令、周期、缓存未命中等。

perf 工具无法正常工作。

因此,我正在使用 perf_event 教程中的示例源代码。

我试图在 x86 linux 机器上运行这段代码。结果显示“Used 123123 Cycles”。

但是,我无法在第二个 nexus7 上获得任何 PMU 事件。它总是返回“Used 0 Cycles”。

PMU 驱动程序启用如下。

<6>[0.152832] hw perfevents:启用 ARMv7 Krait PMU 驱动程序,5 个计数器可用

此外,我可以在用于我的 Nexus7 的 flo 内核 3.4 中找到 perf_event_msm_krait.c。(我找到了一个支持 Krait CPU 的补丁;http://www.serverphorums.com/read.php ?12,850329 。其中包括 perf_event_cpu.c 文件,但我在内核源代码中找不到它。这样是否正确为了支持带有 Krait 的 Nexus7 的 PMU?)

先感谢您。

0 投票
1 回答
1088 浏览

c - Linux 模块:性能计数器不起作用

我想监控最后一级缓存中的缓存请求数。我根据这里的教程编写了一个 Linux 模块来获取该信息。

它可以编译运行,但是输出结果总是0。也就是说,当我使用的时候rdmsr,它总是给我edx=0,eax=0。我什至尝试了教程中的演示代码,输出仍然是0。

我被这个问题困扰了整整一周。谁能帮我指出我在程序中犯的错误?

我知道有一些现有的程序在做同样的事情,但我必须知道如何自己编写代码,因为我想在 Xen 管理程序中监控缓存请求。我不能在 Xen 中使用这些工具,除非我将这些工具合并到 Xen 的管理程序中,这似乎更有效。

我得到的结果是:

0 投票
3 回答
5480 浏览

c - 使用 perf 分析睡眠时间

我一直在寻找一种方法来找出我的程序花费时间的地方。我阅读了perf 教程并尝试按照那里的描述来分析睡眠时间。我编写了最简单的程序来分析:

然后我用 perf 执行它:

有谁知道如何避免这些错误?他们的意思是什么?failed to write feature 2看起来不太人性化...

更新:

0 投票
1 回答
916 浏览

linux - 升级linux性能

我能找到的唯一与性能相关的源代码在内核源代码中,所以我不确定我需要做什么才能获得最新的性能。

如果我升级内核版本(保持发行版的其余部分不变),我现在会获得最新版本的 perf 还是我还需要重建用户空间库?

编辑 - 我看到 perf 源实际上不在内核源中,而是在一个单独的工具目录中,我可以构建这个目录。

0 投票
0 回答
1588 浏览

linux - Perf 不支持某些性能事件

我想使用 perf 测量我的应用程序的停滞周期。

当我尝试:perf stat -B dd if=/dev/zero of=/dev/null count=1000000

如您所见,我正在接受停滞周期* 事件。我在网上找不到解决方案或解释。

我的内核版本是 3.2.0-59,perf 版本是 3.2.54,我的 CPU 是 i7-3770。

0 投票
1 回答
1826 浏览

linux - 在特定功能期间使用 perf 探针监控性能统计信息

我正在尝试使用 linux perf 工具在特定功能期间监视性能统计信息。

我按照https://perf.wiki.kernel.org/index.php/Jolsa_Features_Togle_Event#Example_-_using_u.28ret.29probes给出的说明进行操作

我试图获取一个简单 C 程序的指令计数。(如下所示)

1)我的简单C代码

2)编译和添加探针

3) 尝试使用 perf stat 来测量 func() 函数中的指令数。这会导致错误。

有人能指出我哪里做错了吗?

[我使用的是 linux 内核 3.11.0-12-generic]

0 投票
0 回答
129 浏览

linux - esxi 虚拟化 debian 挤压上的性能示例

在 esxi 虚拟化 debian 挤压上运行时,性能报告不显示任何输出

为什么录音中没有样本?

0 投票
1 回答
1838 浏览

symbols - perf 找不到外部模块符号

运行perf时它会找到我的程序的内核符号和符号,但它没有找到外部模块符号。我已经编写了一个内核模块,我使用insmod如何知道如何perf找到它的符号来加载它?

我正在运行 2.6.37.6 内核(无法升级),我perf还不支持 dwarf 选项,但我认为这是一个符号问题。我已经编译了所有内容-g -fno-omit-frame-pointer

0 投票
0 回答
504 浏览

kvm - 如何在 KVM 主机/来宾上使用 perf stat 收集硬件事件计数?

在 SandyBridge 上的 6.4 主机(2.6.32-358)上,我正在尝试使用 perf stat 收集来宾活动的硬件事件计数。尽管 virt-top 报告了客人的健康活动,但我使用“:G”修饰符得到以下信息

“睡眠 10”的性能计数器统计信息:

我尝试在客人内部收集,但得到以下信息:

我看到有一个 perf kvm,但这只有 top/record/report 并且似乎用于使用采样分析应用程序,而不是收集硬件计数。

在主机上,我如何获得性能统计数据来计算访客活动;在客户机上,将硬件事件计数暴露给 perf stat 需要什么?

0 投票
3 回答
15160 浏览

linux - 为什么 perf stat 显示“停滞周期后端”为?

运行perf stat ls显示:

为什么stalled-cycles-backend显示为“不支持”?我需要什么样的 CPU、硬件、内核或用户空间软件才能看到这个值?

目前在 RHEL 上使用 Linux 3.12 for x86_64(具有匹配perf版本)在不同的 Intel Core i5 和 i7 系统(Ivy Bridge 类型)上进行了尝试。他们都不支持stalled-cycles-backend

更多信息:

编辑:刚刚在带有 Linux 3.2(32 位)的 Ubuntu 12.04 下的 AMD Phenom II X6 1045T CPU 上尝试过这个——它确实显示了stalled-cycles-frontendstalled-cycles-backend 的值。