perf相关内容
我正在使用 perf 来分析我的程序,这涉及大量使用 exp() 和 pow().代码编译使用 icc -g -fno-omit-frame-pointer test.c 并通过以下方式进行分析: perf record -g ./a.out 后面跟着: perf report -g 'graph,0.5,caller' 和 perf 给出: __libm_exp_l9() 和
..
我正在尝试熟悉 perf 并针对我编写的各种程序运行它. 当我针对 100% 单线程的程序启动它时,perf 显示它在机器上需要两个内核(任务时钟事件).这是示例输出: perf stat -a --per-core python3 test.py“系统范围"的性能计数器统计信息:S0-C0 1 19004.951263 任务时钟(毫秒)# 1.000 个 CPU 使用率(100.00%)
..
我正在尝试为我的应用收集一些分析数据,并为此运行 perf 工具和 Flame Graphs. 我指的是本幻灯片中提供的说明:https://www.slideshare.net/brendangregg/java-performance-analysis-on-linux-with-flame-graphs 以下是我正在运行的命令: 1.须藤性能记录 -F 997 -a -g2.
..
我想用 linux perf 来分析我的 c++ 程序.为此,我使用了以下三个命令,但我不明白为什么我会得到三个完全不同的报告. perf record --call-graph dwarf ./myProg性能报告 perf record --call-graph fp ./myProg性能报告 perf record --call-graph lbr ./myProg性能报告 我也不明
..
我在 ubuntu 11.10 上使用 perf 3.0.4.它的记录命令运行良好并显示在终端上收集到的 256 个样本.但是当我使用 perf report 时,它给了我以下错误: perf.data 文件没有样本 我搜索了很多解决方案,但还没有成功. 解决方案 这个帖子有一些有用的信息:http://www.spinics.net/lists/linux-perf-users/ms
..
我正在尝试使用 libunwind(使用 linux perf)进行配置文件,perf top 监视目标进程,我得到了这个组装时间成本屏幕: 0.19 │ mov %rcx,0x18(%rsp) ▒│ trace_lookup(): ▒1.54 │ mov 0x8(%r9),%rcx ▒│ _ULx86_64_tdep_trace(): ▒0.52 │ 和 $0x1,%edx ◆0.57 │
..
我目前正在尝试开发一种判断系统,该系统不仅可以衡量时间和内存使用情况,还可以衡量更深层次的信息,例如缓存未命中等,我认为硬件计数器(使用 perf)非常适合它. > 但是对于计时部分,我想知道纯粹使用循环计数来确定执行速度是否足够可靠?希望了解这个决定的利弊. 解决方案 所以您建议测量 CPU 周期,而不是秒?听起来有些道理. 对于一些很好的微基准测试,主要是考虑了由于 CPU
..
在 Mac OS 上是否有等效的性能统计数据?我想为 CLI 命令做同样的事情,谷歌搜索没有产生任何结果. 解决方案 Mac OS X 中有 Instruments 工具来分析应用程序,包括硬件 PMU.默认是对 CPU 使用情况进行采样分析器.一些文档:https://en.wikipedia.org/wiki/Instruments_(software) https://help.ap
..
我使用“perf stat"命令对一些事件进行统计: [root@root test]# perf stat -a -e "r81d0","r82d0" -v ./ar81d0:71800964 1269047979 1269006431r82d0:26655201 1284214869 1284214869'./a' 的性能计数器统计信息:71,800,964 r81d0 [100.00%]2
..
使用 perf(Linux 分析器), (v4.15.18), 我可以运行 perf stat $COMMAND 来获取一些简单的命令统计信息.如果我运行 perf record,它会将大量数据保存到 perf.data 文件中. 我可以在 perf record 的输出上运行 perf stat 吗?这样我就可以查看 perf 记录的数据,同时也可以得到一个简单的概览? 解决方案
..
一些内置的 perf 事件被映射到非核心事件.例如, LLC-loads 和 LLC-load-misses 被映射到 OFFCORE_RESPONSE.事件.如此处所述,可以很容易地确定这一点.但是,这些脱机事件需要将某些值写入某些MSR寄存器以实际指定特定事件. perf 似乎正在使用一个名为此处对于SnB,其他体系结构均已关闭. 宏 INTEL_UEVENT_EXTRA_REG 是 hw_
..
假设我有一个线束二进制文件,可以根据命令行选项生成不同的基准.我对抽样这些基准非常感兴趣. 我有3种选择: 更改工具二进制文件以生成“性能记录"子进程,该子进程运行基准并进行采样 只需执行"perf record $ harness-binary",希望它也会对子进程进行采样. “性能记录-a $ harness-binary",它将执行“从所有CPU进行系统范围的收集".
..
为了能够描述其二进制文件实际上将在模拟器(NS-3/DCE)下运行的应用程序运行时.我想使用linux性能计数器,我希望没有确定性来源的应用程序的指令计数是确定性的.根据linux性能计数器,我再没错了,让我们举一个简单的例子: $(perf stat -c-sleep 1 2& 1&& perf stat -c-sleep 1 2>& 1)| grep指令669218个指令#每个周期0.61
..
我的教授要我跑步: perf stat -e mem-loads,mem-stores ./test 为了让我找到C文件的内存加载和存储.我是在VirtualBox Linux guest虚拟机中执行此操作的,问题是 perf 表示这是无效或不受支持的事件,任何人都可以建议我在这里做错了什么吗? 无效或不受支持的事件:“内存加载"运行“性能列表"以获取有效事件的列表用法:perf sta
..
好的,这真的让我很烦. 我正在使用perf记录cpu-clock事件(一个软件事件): $>性能记录-e cpu-clock srun -n 1 ./stream ...,并且性能报告生成的表为空. 我正在使用perf来记录perf列表中列出的所有可用软件事件: $>性能记录-e对齐错误,上下文开关,CPU时钟,CPU迁移,\虚拟,模拟故障,重大故障,次要故障,页面故障,任
..
我目前正在学习使用perf.我有硬件事件的输出,但没有cpu-cycles或cpu-clock之类的软件事件的输出. 我使用详细选项调用了perf: $>性能记录-v ./pi-serial-psmmap尺寸528384B参考Pi:3.1415926536模拟Pi:3.1415209778[性能记录:唤醒15次以写入数据]查看 vmlinux_path(7 个条目长)对符号使用/proc
..
我正在玩mmap和/proc/mtrr,目的是对物理内存分析做一些深入的分析.这是我正在尝试做的基本思想,以及到目前为止所做的总结.我使用的是Ubuntu内核版本3.5.0-54(通用). 我基本上是映射到特定的物理地址(使用/proc/iomem的提示),并测量对该物理地址范围的访问延迟.到目前为止,这是我所做的: 在/proc/mtrr中创建了一个条目,以使我无法映射的物理地址范围
..
有人知道如何获取导致页面错误的内存访问(指针)吗?我主要对主要页面错误感兴趣. 关于我要实现的目标的一些背景知识.我有一个具有大内存占用的应用程序(数据库),并且我想将分页与对大型数据结构(例如表,使用mmap()分配的索引)的访问相关联.该过程的映射很容易从/proc//maps中检索.现在,如果我具有导致页面错误的内存访问,则可以跟踪访问每个数据结构时引起了多少页面错误. 我认为p
..
当我想从Linux工具套件中使用perf-stat和perf-report生成性能报告时, perf ,我运行: $ perf record -o my.perf.data myCmd$ perf report -i my.perf.data 并且: $ perf stat myCmd 但这意味着我第二次运行"myCmd",这需要几分钟.相反,我希望是: $ perf stat
..
当我想在WSL下运行perf时,遇到了以下问题: 警告:找不到适用于内核4.4.0-18362的性能 您可能需要为此特定内核安装以下软件包: linux-tools-4.4.0-18362-Microsoft linux-cloud-tools-4.4.0-18362-Microsoft 您可能还需要安装以下软件包之一以保持最新状态: linux-tools-M
..