33得票1回答
"perf_event_paranoid == 1" 实际上对 x86 perf 有什么限制?

新版本的Linux内核有一个sysfs可调参数/proc/sys/kernel/perf_event_paranoid,允许用户为非root用户调整perf_events的可用功能,更高的数字表示更安全(相应地提供更少的功能): 从kernel documenation中我们可以看到各个值的...

33得票2回答
性能分析器中的调用栈

我正在以下方式运行"perf":perf record -a --call-graph -p some_pid perf report --call-graph --stdio 然后,我看到了这个: 1.60% my_binary my_binary ...

29得票3回答
为什么perf stat显示“stalled-cycles-backend”为<not supported>?

运行perf stat ls显示如下:Performance counter stats for 'ls': 1.388670 task-clock # 0.067 CPUs utilized ...

28得票1回答
按自身列在perf报告中排序

我该如何在perf report输出中按self列排序?$ perf --version perf version 4.0.8-300.fc22.x86_64 $ uname -a Linux marko-desktop 4.0.8-300.fc22.x86_64 #1 SMP Fri Ju...

25得票2回答
在不使用--privileged的情况下,在Docker容器内使用perf

我尝试在Docker容器中使用perf工具记录给定命令。 kernel.perf_event_paranoid设置为1,但是当我不加--privileged标志时,容器的行为就像设置为2一样。 我可以使用--privileged,但我要对perf工具运行的代码进行安全考虑,并且如果我同意通...

21得票1回答
Linux的perf工具如何理解堆栈跟踪?

Linux的性能分析工具perf被广泛用于生成c/c++、JVM代码、Node.js代码等的火焰图。 Linux内核本质上能否理解堆栈跟踪信息?我在哪里可以阅读有关工具如何审查进程的堆栈跟踪信息的更多信息,即使这些进程是以完全不同的语言编写的?

21得票1回答
如何在Linux上使用Intel Westmere 1GB页面?

编辑: 我已经更新了我的问题,并附上了基准测试的详细信息。 为了进行基准测试,我正试图在两个英特尔 Xeon 56xx(“Westmere”)处理器上运行的 Linux 3.13 系统中设置 1GB 页面。为此,我修改了我的引导参数以添加对 1GB 页面(10 页)的支持。这些引导参数只包含...

21得票3回答
使用perf对睡眠时间进行分析

我想找到一种方法来确定我的程序花费了多少时间。我阅读了perf教程,并尝试按照其描述的方式分析睡眠时间。 我编写了最简单的可能的程序进行分析: #include &lt;unistd.h&gt; int main() { sleep(10); return 0; } 然后我使用...

21得票1回答
使用Kcachegrind打开perf.data文件

我在某个地方读到过可以将来自Linux perf record性能分析工具的输出perf.data转换为kcachegrind可以解析/绘制的格式,然而我没有找到一个能够进行此转换的应用程序,kcachegrind也无法打开perf.data。 这是否可能:使用kcachegrind查看pe...

21得票1回答
什么是锁步采样?

我在几篇关于应用程序性能分析的帖子中看到了这个术语,但我不知道它实际上是什么意思以及它如何影响性能分析结果。 我在这里看到了dtrace的内容: 由于捕获内核堆栈要比用户级堆栈更便宜,因此速率也增加到199赫兹。使用奇数速率99和199可避免与其他活动同步取样并产生误导性结果。 ...