1. 性能分析基础:什么是驱动性能、性能指标、核心思想
1.1 什么是驱动性能?
驱动性能,就是驱动程序在硬件和软件之间传递数据时,跑得有多快、有多稳、有多省资源。
我习惯把驱动比作一个「快递员」。硬件是仓库,应用层是客户。快递员(驱动)要做的就是把货(数据)从仓库搬到客户手里。这个过程中,我们关心三件事:
- 送货快不快 —— 延迟和吞吐量
- 累不累 —— CPU占用率
- 会不会丢件 —— 稳定性
如果一个快递员送货很快,但每次都要把整个仓库的货全搬出来再挑,CPU(也就是他自己)累得半死,那这个驱动设计就是有问题的。
核心观点:驱动性能不是单一维度的快,而是延迟、吞吐量、CPU占用率三者之间的平衡艺术。
1.2 三大核心性能指标
1.2.1 延迟(Latency)
延迟就是「从发出请求到收到响应」的时间。单位通常是微秒(μs)或毫秒(ms)。
项目中遇到过最典型的延迟问题,是网卡驱动的中断处理。每次数据包进来,CPU都要停下手头的工作去处理中断。如果中断处理写得不好,延迟能从几微秒飙升到几百微秒。
延迟又分两种:
- 中断延迟:硬件发出中断信号到CPU开始处理的时间
- 调度延迟:驱动线程被操作系统调度到真正运行的时间