用 perf top 实时分析 CPU 热点
实时查看整个系统中是哪些函数和内核路径在消耗 CPU。
运行 sudo perf top 实时观察最热的函数,或用 sudo perf top -p PID 只分析某个进程;按 e 可展开进程看到函数明细。
01命令
命令
$ sudo perf top02作用说明
perf top 每秒对 CPU 指令位置采样数千次,实时显示采样次数最多的函数排行——方括号里的是内核代码,其余是用户态代码及其所在库。它直接回答"现在谁在吃 CPU",而 htop 只能看到进程这一层。想留下更深入的分析,用 perf record -g 命令运行程序,再用 perf report 查看调用图。
03风险
!注意: perf 需要访问内核计数器:如果报 'Permission error',把 kernel.perf_event_paranoid 调低(如 sudo sysctl kernel.perf_event_paranoid=1)或直接用 sudo。缺少调试符号时 C++/Rust 函数会显示为地址——安装对应应用的 -dbg/-debuginfo 包。采样本身有开销,满载机器上会略有拖慢。
04撤销
✓无需撤销——该命令不会改变持久状态。
05来源
- perf-top(1) - profile a system in realtime依据: perf top live-profiles the whole system or a single process (-p PID) and displays the hottest functions by CPU samples.
- Linux perf Examples — Brendan Gregg依据: perf top shows live CPU functions; perf record/report for saved profiles; perf_event_paranoid governs unprivileged access.
最后验证: 2026-09-18 · 分类: 开发者