我正在阅读那个分支错误预测可能是应用程序性能的热门瓶颈.正如我所看到的,人们经常会显示汇编代码来揭示问题,并指出程序员通常可以预测分支在大多数时间内的位置并避免分支错误预测.
我的问题是:
1-是否可以使用某种高级编程技术(即无汇编)来避免分支错误预测?
2-我应该记住用高级编程语言生成分支友好的代码(我最感兴趣的是C和C++)?
欢迎使用代码示例和基准测试!
有没有可行的分支预测提示方法?请考虑以下示例:
if (unlikely_condition) {
/* ..A.. */
} else {
/* ..B.. */
}
Run Code Online (Sandbox Code Playgroud)
这有什么不同于:
if (!unlikely_condition) {
/* ..B.. */
} else {
/* ..A.. */
}
Run Code Online (Sandbox Code Playgroud)
或者是使用编译器特定提示的唯一方法?(例如海湾合作委员会的__builtin_expect)
编译器会根据if
条件的顺序对条件进行不同的处理吗?