您的位置:首页 >Linux怎么查看指令集执行吞吐记录
发布于2026-08-11 阅读(0)
扫一扫,手机访问
Linux本身并不会直接给出“指令集执行吞吐”这样的系统级指标。通常要借助perf stat,结合instructions、cycles这类PMU事件来计算IPC,或者统计特定指令(比如A VX、NEON)的执行次数;再把结果除以耗时,才能换算出实际的吞吐率。

指令集执行吞吐不是 Linux 内核或标准工具暴露的可观测指标——它不存在于 iostat、perf 或 vmstat 的输出字段中,也没有系统级日志持续记录“每秒执行了多少条 x86-64 指令”或“ARM64 的 NEON 吞吐量”。
你真正想查的,大概率是以下三者之一,但被误称为“指令集执行吞吐”:
perf 抓 cycles/instructionsLinux 不记录“指令吞吐率”,但 perf 可以在采样时估算 IPC(Instructions Per Cycle)和实际指令数:
perf stat -e instructions,cycles,branches,branch-misses -a sleep 1:给出全局指令执行总数、周期数、分支行为instructions / cycles —— 值越接近理论峰值(如 Skylake 约 4.0),说明流水线利用越好instructions 是硬件 PMU 计数器上报的退休指令数,不是“解码/发射”数;不同微架构对同一指令的计数逻辑可能略有差异perf record + perf report 查吞吐:它定位热点函数,不提供速率类指标perf 要加硬件事件通用 instructions 无法区分标量还是向量化指令。需显式指定 PMU 事件:
perf stat -e cpu/event=0x151,umask=0x01,name=a vx_inst_retired/ -a sleep 1(需内核支持,且事件编码因 CPU 型号而异)perf stat -e armv8_pmuv3_0/cycles/,armv8_pmuv3_0/instructions/,armv8_pmuv3_0/neon_instructions/ -a sleep 1(依赖 kernel 5.10+ 和 PMU 驱动)a vx_throughput 或 neon_mops 字段——必须自己算:比如 neon_instructions / timeperf list | grep -i neon 先确认是否可用比如 GCC 的 -fopt-info-vec、LLVM 的 -Rpass=loop-vectorize,以及 Ja va HotSpot 的 -XX:+PrintVectorization,本质上都只是用来在编译阶段或 JIT 过程中打印向量化决策日志,并不属于运行时吞吐量记录。
perf stat 实测
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9