7.2.2 线性扫描算法 (Linear Scan) 线性扫描寄存器分配——不是“凑合能用”的权宜之计,而是现代JIT编译器在毫秒级约束下做出的精密工程抉择。 你有没有在调试一个Java应用时,发现某个热点方法的性能突然卡顿?用 打开HotSpot的汇编日志后,赫然看到几十条 、 、甚至更刺眼的 ——那些本该留在寄存器里的变量,正一趟趟往返于栈内存与CPU之间。这不是代码写得烂,而是寄存器分配器在关键时刻“松手”了。而在线性扫描(Linear Scan)算法的世界里,每一次“松手”,都是一次经过深思熟虑的权衡:它不追求图着色那样的全局最优解,却以$O(n)$时间复杂度和极小常数开销,在JIT编译的10–50毫秒黄金窗口内,交出一份可预测、可调试、可配置、且平均质量逼近最优的分配方案。