Q01·问题驱动

为什么我的循环很慢?

深入解答

循环性能受多个层级影响。在 L4(CPU 微架构)层面,分支预测失败会导致流水线清空,浪费 15-20 个时钟周期;在 L5(内存层次)层面,缓存未命中需要等待 100+ 周期从主存加载数据,而顺序访问可以利用空间局部性获得 95%+ 的缓存命中率;在 L7(体系结构)层面,SIMD 指令可以一次处理多个数据(如 AVX-512 一次处理 16 个整数),但需要数据对齐和向量化循环。优化策略:减少循环内的分支、改善数据局部性(数组优于链表)、使用编译器自动向量化(-O3)或手动 SIMD。