一、线上排查用
# 查看整个系统实时热点
perf top
# 只看某个进程
perf top -p <pid>
# 只看某个 CPU 核心
perf top -C 0
# 只看内核态
perf top -k 1
适用场景:
程序运行中突然 CPU 飙高到 100%,但不能停掉程序。
用 perf top -p <pid> 直接看到当前哪个函数在吃 CPU。
输出示例:
PerfTop: 5000 irqs/sec kernel:10.0% exact: 100.0%
40.2% libc-2.31.so [.] malloc ← 内存分配是热点
25.1% my_program [.] serialize_packet ← 序列化函数
12.3% [kernel] [.] tcp_sendmsg ← 内核 TCP 发送
→ 马上知道:程序在频繁 malloc,需要优化内存分配策略。