7得票1回答
以编程方式启用/禁用性能事件收集。

我正在Ubuntu 20.04上使用perf进行性能分析(虽然我也可以使用其他免费工具)。它允许在CLI中传递延迟时间,以便事件收集在程序启动后一定时间后开始。但是,这个时间变化很大(1000次中有20秒的波动),而且还有我不感兴趣的尾部计算。 因此,调用我的程序中的一些API来启动对代码片...

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

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

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

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

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

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

10得票2回答
能否在C++代码中使用Linux Perf分析器?

我想要测量我的C++代码中某些部分的L1、L2和L3缓存命中/失效率。我不想在整个应用程序中使用Perf。可以将Perf作为库在C++中使用吗?int main() { ... ... start_profiling() // The part I'm inte...

7得票1回答
为什么_mm_mfence()会触发ALL_LOADS性能事件的计数?

我正在测试一些内在操作行为。当我注意到_mm_mfence()从用户空间发出load指令时,我感到惊讶,但它不计入L1数据缓存 - miss、hit或填充缓冲器的hit。我使用papi的本地事件,如MEM_INST_RETIRED和MEM_LOAD_RETIRED来读取性能计数器。这段代码: ...

14得票1回答
如何解释perf iTLB-loads,iTLB-load-misses?

我有一个测试用例要观察性能,它是通过iTLB加载和iTLB加载不命中来实现的 perf stat -e dTLB-loads,dTLB-load-misses,iTLB-loads,iTLB-load-misses -p 22479 并获得输出: 进程ID“22479”的性能计数器统计信息...

13得票3回答
从C程序中测量页面错误。

我正在比较几个系统调用,其中我从/向内存读写。是否有定义的API来测量C中的页面错误(页面进出)? 我找到了这个库libperfstat.a,但它是为AIX而设计的,我找不到任何适用于Linux的东西。 编辑: 我知道在Linux中有time和perf-stat命令,只是探索是否有任何可供...

33得票1回答
理解Linux perf报告输出

虽然我可以直观地得到大多数结果,但是我很难完全理解perf report命令的输出,尤其是关于调用图方面的内容,因此我写了一个愚蠢的测试来彻底解决这个问题。 愚蠢的测试 我使用以下方式进行编译:gcc -Wall -pedantic -lm perf-test.c -o perf-test...

11得票1回答
性能启动开销:一个执行MOV + SYS_exit的简单静态可执行文件为什么会有这么多停滞周期(和指令)?

我试图理解如何衡量性能,并决定编写非常简单的程序: section .text global _start _start: mov rax, 60 syscall 我使用perf stat ./bin运行了程序,让我惊讶的是stalled-cycles-fron...