用途:该技能指导代理完成硬件性能计数器分析,面向底层 CPU 性能测量,包括用 perf stat -e 采集 PMU 事件、用 PAPI 库进行可移植的计数器访问、解读缓存未命中率与分支预测错误比、计算 IPC,以及用 perf annotate 把事件关联到源码行。
主要能力与用法:基础采集用 perf stat ./prog,可用 -e 指定事件,如 instructions,cycles,cache-misses,branch-misses,以及 L1-dcache、L2、LLC、dTLB、branches 等事件与分支预测错误率。可用 perf list hardware/cache/pmu 查看可用事件(随 CPU 变化)。支持原始 PMU 事件(Intel rXXYY 格式、AMD r04041 等),可借助 ocperf.py 与 libpfm4 的 pfm_ls 获取事件名。源码级标注用 perf record -e LLC-load-misses -g ./prog 后执行 perf annotate --stdio 或 perf report。PAPI 提供跨架构 C API,示例包含 PAPI_library_init、PAPI_start_counters、PAPI_stop_counters,并用 gcc -O2 -g -o prog prog.c -lpapi 编译;可用 papi_avail -a 查看可用事件。还提及 Intel PCM:git clone https://github.com/intel/pcm,cmake -S . -B build && cmake --build build,再用 pcm-memory 1 与 pcm 1 采样。
关键指标:IPC=instructions/cycles(现代 x86 健康值>2.0,<1.0 需关注);L1 未命中率健康<1%、>5% 需关注;LLC 未命中率健康<1%、>10% 需关注;分支预测错误率健康<1%、>5% 需关注;MPKI 可用 LLC-load-misses/(instructions/1000) 计算,L3 MPKI>10 表示内存受限。
适用场景与限制:适用于低层 CPU 性能剖析与优化定位。事件可用性随 CPU 不同,原始事件需查阅对应手册;perf annotate 交互分析需要调试符号。资料未提供具体收费、平台支持范围或其他效果说明。