2.1 perf:性能计数器之王perf 是我用得最多的工具,没有之一。它基于 Linux 内核的 perf_event 子系统,能直接读取 CPU 的 PMU(性能监控单元)寄存器。说白了,就是硬件级别的性能计数器。核心能力:CPU 周期、缓存命中率、分支预测失败、指令退休数等硬件事件采样。基本用法很简单:# 统计 CPU 周期和指令数 perf stat ./my_driver_test # 采样调用栈,生成火焰图 perf record -F 99 -g ./my_driver_test perf report -g graph我个人习惯先用perf stat看宏观数据。比如驱动处理一个 I/O 请求花了 10 万个周期,其中缓存未命中占了 30%。嗯,这就有方向了——大概率是数据结构布局问题。小技巧:用perf top可以实时查看当前系统最热的函数。我曾经用它发现一个中断处理函数占了 40% 的 CPU,结果是个死循环的轮询——代码里少了个 break。2.2 ftrace:内核的瑞士军刀ftrace 是内核内置的跟踪器,不需要额外安装。它最牛的地方在于——你可以跟踪任意内核函数的调用,而且开销极低。为什么会这么强?因为它利用了 GCC 的-pg编译选项,在每个函数入口插入了 5 个字节的跳转指令。启用跟踪时,这些跳转会重