代码看起来复杂的地方不一定消耗最多资源。没有基线的优化很难证明收益,也容易把瓶颈移动到其他组件。

选择代表性负载

输入规模、并发度、缓存状态和数据分布都应接近真实场景。只运行几次微基准无法代表完整请求链路。

同时观察资源

CPU 剖析需要结合内存分配、I/O 等待和锁竞争。火焰图显示的是采样占比,不直接说明某个函数逻辑错误。

一次改变一个变量

记录修改前后的吞吐、延迟和资源占用。收益不稳定或可读性代价过高时,应保留证据并撤销实验。