问题标签 [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 投票
3 回答
3649 浏览

linux - 在linux中定期读取性能计数器

有没有办法在linux中定期读取性能计数器?

perf stat我正在寻找能够对每个 X 周期进行采样的能力。

基本上,我希望能够在某些程序的每 X 个 cpu 周期中读取指令计数器(执行的指令数)。

0 投票
2 回答
40459 浏览

linux - 性能分析器中的调用堆栈

我正在通过以下方式运行“perf”:

然后,我看到了这个:

我看不到哪些函数调用了 my_func()。我看到的是“nil”和“0x17f310000000a”。难道我做错了什么?这可能不是调试信息问题,因为显示了一些符号而未显示其他符号。

更多信息:

  • 我正在运行 CentOS 6.2(内核 2.6.32-220.4.1)。
  • perf rpm - perf-2.6.32-279.5.2.el6.x86_64。
0 投票
1 回答
692 浏览

linux - 使用英特尔 PEBS 的 DTLB 未命中地址跟踪

我正在尝试通过使用硬件性能计数器生成 D-TLB 未命中的地址跟踪。英特尔处理器具有“基于事件的精确采样”(PEBS),可以在每次采样时转储硬件寄存器内容。我需要使用这个寄存器转储来创建导致 D-TLB 未命中的地址。但是,我不确定如何从寄存器转储中生成访问地址。

有人有做类似事情的经验,可以给我一些指示吗?

谢谢

阿尔卡

0 投票
3 回答
22730 浏览

c - perf 缓存事件是什么意思?

我试图弄清楚为什么修改后的 C 程序比未修改的对应部分运行得更快(我添加了很少的代码行来执行一些额外的工作)。在这种情况下,我怀疑“缓存效果”是主要的解释(指令缓存)。因此,我访问了perf(https://perf.wiki.kernel.org/index.php/Main_Page)分析工具,但不幸的是我无法理解其关于缓存未命中的输出的含义。

提供了几个关于缓存的事件:

我在哪里可以找到有关这些字段的说明?cache-misses 事件总是小于其他事件。本次活动衡量什么?

如何解释 ls 的 26,760 个 L1-icache-load-misses 与以下示例中的 5,708 个缓存未命中?

0 投票
1 回答
363 浏览

c - 使用 perf 或其他方式获取 C 程序的运行时间(或其他统计信息)

我需要编写一个 C 程序(用于确定缓存大小的学校作业)。我已将其用作clock()获取时间信息的一种方式。但被告知这可能会导致结果不准确。

所以我正在考虑使用最近实验室中引入的其他库 perf 或 papi 来记录性能。但我们使用它们的方式是通过命令行:

我认为可以在应用程序中使用 perf 吗?我是 C 新手,更习惯于 Python/JS/Java 等高级语言。所以我想我需要创建一个 make 文件,包含库等。还有什么功能?

我看到http://www.rzg.mpg.de/computing/hardware/BGP/perf.html

我用哪一个?它不是 MPI 程序。那我该如何实际使用呢?我正在使用 C 和 gcc。这看起来像编译但是......什么mpixlf90

0 投票
1 回答
3225 浏览

linux-kernel - perf 命令和 perfmon2 或 libpfm4 有什么区别

最近我正在挖掘性能计数器周围的东西。我用谷歌搜索了 perfmon2 和 libpfm4 http://perfmon2.sourceforge.net/,还找到了 perf 命令https://perf.wiki.kernel.org/index.php/Main_Page并附带了 linux 的内核源代码。 perf 源代码链接我玩过 libpfm4 和 perf 命令,而 libpfm4 似乎只能提供 cpu 的周期数或指令数。

我找不到任何示例代码或可运行示例来说明如何检索 L1-dcache-loads 之类的信息,这些信息似乎可以通过使用 perf 获得,我在 stackoverflow 上查找了它并找到了讨论 perf 命令和 libpfm4 之间关系的文章:使用硬件性能Linux 中的计数器 人们说 libpfm4 的作者对 perf 命令的贡献者之一 Ingo 很生气,但后来他实际上帮助审查了 perf 的代码。

那么有人可以用 perf 命令解释 perfmon2 或 libpfm4 之间的关系。我可以像使用 perf 命令一样使用 libpfm4 检索 L1-dcache 之类的信息吗?非常感谢!

0 投票
1 回答
3076 浏览

linux - 使用 perf_events/oprofile 在 Linux 上分析 JIT 的输出?

我想使用硬件性能计数器来分析由 Linux 上的 JIT 生成的代码。据我所知,最常见的分析器是oprofileperf

如何集成 JIT 和 oprofile/perf?

我的 JIT 不是 oprofile 已经支持的 JAVA。(性能?)

例如,我们可以考虑 LLVM 的 JIT。我想要

  1. 查看 JIT-ted 代码中最热门的函数(它们的名称)
  2. 查看最热门函数的反汇编,并为每条指令分配性能计数器统计信息
0 投票
1 回答
2241 浏览

performance - “perf top”命令在虚拟机上无法正常运行

我有一台运行 Ubuntu 12.04 和 linux 内核 3.2.0-31 的虚拟机。当我尝试运行sudo perf top可以分析整个系统进程并收集其信息的命令时,没有显示任何信息。但其他命令运行良好,例如perf stat ls收集运行 ls 命令的所有性能信息。

截屏

所以我想知道:是因为perf top命令不支持虚拟机吗?有任何想法吗?

0 投票
1 回答
224 浏览

performance - 如何测量进程之间的干扰

在并行系统中,每个进程都会对其他进程产生影响,因为它们都在争夺一些稀缺资源,如 CPU 缓存、内存、磁盘 I/O、网络等。

哪种方法最适合测量过程之间的干扰?例如进程 A 和 B 各自重度访问磁盘。因此,并行运行它们可能会比顺序运行(单个运行时)慢。因为瓶颈是硬盘。

如果我不确切知道进程的行为(磁盘密集型、内存密集型或 CPU 密集型),那么哪种方法最适合分析它?

测量单个运行时间并比较每个并行进程的相对份额?

就像进程 A 平均单独运行 30 秒,当 100% 与 B 并行时 45 秒,当 20% 并行时 35 秒 .. 等等 ??

比较 L1 和 LLC 缓存未命中、页面错误等几个指标会更好吗?

0 投票
1 回答
300 浏览

profile - 性能输出中的“样本”是什么意思?

我使用 linux perf 来分析我的程序,但我无法理解结果。

上面的例子意味着 'fun' 有两个样本并贡献了 10.5% 的开销,

其中 80% 来自 ABC,20% 来自 DEF。我对吗?

现在我们只有两个样本,那么 'perf' 是如何计算 ABC 和 DEF 的分数的呢?

为什么他们不是 50%?剂量“性能”使用附加信息?