瓶颈定位与优化次序:先判是哪一类(IO / CPU / 锁 / 数据布局),再决定动谁
汇总本专栏已实测的数字给出次序:直读随机 4 KB 是缓冲读法的 10.5 倍(75.64 vs 7.19 µs/次),把队列深度从 1 加到 16 又能把单价从 68.40 压到 13.16 µs——**同一个 IO 瓶颈,"换访问方式"值 10 倍、"加并发"值 5 倍**; 每行 `fflush` 是 1MB 缓冲的 31 倍(8195 ns/行),而把全局锁换成每线程私有缓冲是 8.5 倍(811.6 → 95.6 ns/行); 一次条件变量唤醒 11.35 µs 等于 186 次原子自旋交接(61 ns);201 个文件的编译全量 34.1 s,`-j8` 只买到 2.63 倍, 而"改一个文件别全量重编"值 14.1 倍——**依赖图比并行度便宜**;数据库那条加了两个索引反而慢 6.0 倍 (9.653 → 57.783 ms)、换成覆盖索引才回到 3.288 ms——**同一个"优化动作"可以是反向的**。 本文不新增任何测量,只做一件事:把这些数字排成一个可执行的判断顺序。