9得票2回答
每个mmap/access/munmap有两次TLB缺失

for (int i = 0; i < 100000; ++i) { int *page = mmap(NULL, PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP...

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

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

7得票2回答
硬件事件和硬件缓存事件在perf中有什么区别?

当我输入perf list命令时,我发现有两种类型的事件:Hardware event和Hardware cache Event。这两种事件有何区别? cache-misses和LLC-misses之间有什么区别?Cache misses是否包括LLC-misses? 当我测试一个程序时,...

9得票2回答
如何提高缓存未命中率的实例?

我正在尝试编写一个示例程序,它的高缓存未命中率。我想我可以尝试按列访问矩阵,如下所示: #include <stdlib.h> int main(void) { int i, j, k; int w = 1000; int h = 1000; ...

42得票3回答
为什么perf报告不了缓存未命中?

根据perf教程,perf stat应使用硬件计数器报告缓存未命中情况。然而,在我的系统上(最新的Arch Linux),它没有这样做:[joel@panda goog]$ perf stat ./hash Performance counter stats for './hash': ...

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

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

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

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

8得票1回答
Valgrind与Linux perf的相关性

假设我选择perf事件instructions, LLC-load-misses, LLC-store-misses。进一步假设我通过改变程序输入来测试一个名为prog的程序。对于相同的输入和相同的计数器,valgrind是否应该为我提供“相同”的功能结果?也就是说,如果perf中的一个值增加...

8得票1回答
如何减少执行单条指令所需的时间?

我正在尝试优化C代码,但似乎有一条指令占用了大约22%的时间。 该代码使用gcc 8.2.0编译。编译选项为-O3 -DNDEBUG -g和-Wall -Wextra -Weffc++ -pthread -lrt。 509529.517218 task-clock (mse...

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

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