问题标签 [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.
linux - 在linux中定期读取性能计数器
有没有办法在linux中定期读取性能计数器?
perf stat
我正在寻找能够对每个 X 周期进行采样的能力。
基本上,我希望能够在某些程序的每 X 个 cpu 周期中读取指令计数器(执行的指令数)。
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。
linux - 使用英特尔 PEBS 的 DTLB 未命中地址跟踪
我正在尝试通过使用硬件性能计数器生成 D-TLB 未命中的地址跟踪。英特尔处理器具有“基于事件的精确采样”(PEBS),可以在每次采样时转储硬件寄存器内容。我需要使用这个寄存器转储来创建导致 D-TLB 未命中的地址。但是,我不确定如何从寄存器转储中生成访问地址。
有人有做类似事情的经验,可以给我一些指示吗?
谢谢
阿尔卡
c - perf 缓存事件是什么意思?
我试图弄清楚为什么修改后的 C 程序比未修改的对应部分运行得更快(我添加了很少的代码行来执行一些额外的工作)。在这种情况下,我怀疑“缓存效果”是主要的解释(指令缓存)。因此,我访问了perf
(https://perf.wiki.kernel.org/index.php/Main_Page)分析工具,但不幸的是我无法理解其关于缓存未命中的输出的含义。
提供了几个关于缓存的事件:
我在哪里可以找到有关这些字段的说明?cache-misses 事件总是小于其他事件。本次活动衡量什么?
如何解释 ls 的 26,760 个 L1-icache-load-misses 与以下示例中的 5,708 个缓存未命中?
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
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 之类的信息吗?非常感谢!
linux - 使用 perf_events/oprofile 在 Linux 上分析 JIT 的输出?
我想使用硬件性能计数器来分析由 Linux 上的 JIT 生成的代码。据我所知,最常见的分析器是oprofile
和perf
。
如何集成 JIT 和 oprofile/perf?
我的 JIT 不是 oprofile 已经支持的 JAVA。(性能?)
例如,我们可以考虑 LLVM 的 JIT。我想要
- 查看 JIT-ted 代码中最热门的函数(它们的名称)
- 查看最热门函数的反汇编,并为每条指令分配性能计数器统计信息
performance - “perf top”命令在虚拟机上无法正常运行
我有一台运行 Ubuntu 12.04 和 linux 内核 3.2.0-31 的虚拟机。当我尝试运行sudo perf top
可以分析整个系统进程并收集其信息的命令时,没有显示任何信息。但其他命令运行良好,例如perf stat ls
收集运行 ls 命令的所有性能信息。
所以我想知道:是因为perf top
命令不支持虚拟机吗?有任何想法吗?
performance - 如何测量进程之间的干扰
在并行系统中,每个进程都会对其他进程产生影响,因为它们都在争夺一些稀缺资源,如 CPU 缓存、内存、磁盘 I/O、网络等。
哪种方法最适合测量过程之间的干扰?例如进程 A 和 B 各自重度访问磁盘。因此,并行运行它们可能会比顺序运行(单个运行时)慢。因为瓶颈是硬盘。
如果我不确切知道进程的行为(磁盘密集型、内存密集型或 CPU 密集型),那么哪种方法最适合分析它?
测量单个运行时间并比较每个并行进程的相对份额?
就像进程 A 平均单独运行 30 秒,当 100% 与 B 并行时 45 秒,当 20% 并行时 35 秒 .. 等等 ??
比较 L1 和 LLC 缓存未命中、页面错误等几个指标会更好吗?
profile - 性能输出中的“样本”是什么意思?
我使用 linux perf 来分析我的程序,但我无法理解结果。
上面的例子意味着 'fun' 有两个样本并贡献了 10.5% 的开销,
其中 80% 来自 ABC,20% 来自 DEF。我对吗?
现在我们只有两个样本,那么 'perf' 是如何计算 ABC 和 DEF 的分数的呢?
为什么他们不是 50%?剂量“性能”使用附加信息?