本章总结
- 现代处理器在预测分支结果方面表现出色。因此,建议仅在 TMA 指向较高
Bad Speculation指标时才关注分支预测失误问题。 - 当分支结果模式变得难以被 CPU 分支预测器跟踪时,应用程序的性能可能会下降。在这种情况下,算法的无分支版本可能表现更优。本章展示了如何用查找表、算术运算和条件选择来替换分支。
- 无分支算法并非普遍有益。务必通过测量来确定哪种方式在具体情况下表现更好。
- 还有一些间接方式可以通过减少程序中动态分支指令数量来降低分支预测失误率。这种方法有效是因为它减轻了分支预测器结构的压力。此类技术包括:循环展开/向量化(loop unrolling/vectorization)、用按位运算(bitwise operations)替换分支,以及使用 SIMD 指令。