我尝试查找有关无跳转编程的文章、书籍或任何内容(x86 架构)。我知道通常这是不可能的,但我尽量避免跳转,但 gcc 即使使用内联 func 也多次使用跳转。仅在 Assembly 中编码是某种解决方案,但在 C 中编写相当于 1000 行的代码对我来说就像 hell 派对。
最佳答案
除非你的跳转真的是随机的,否则分支预测应该消除大部分涉及的开销。
我会投入更多精力来优化内存访问模式,以提高局部性并减少缓存未命中。如今,内存延迟是性能的主要瓶颈。
另一个好的方向是改进并行性(使用向量化 SIMD 指令,如果可能,使用多个内核)。
关于c - 无跳转编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4302848/