有没有使用可能/不可能提示的性能测试结果?
海湾合作委员会功能可能/不太可能的提示,帮助编译器生成更好的分支预测机器代码。
有没有关于如何正确使用或不使用这些提示影响真实代码在某些实际系统上的性能的数据?
这个问题不同,但彼得·科尔德斯对这个问题的回答给出了一个清晰的提示;)。 现代CPU忽略静态提示并使用动态分支预测。
我不知道有关这些特定提示的详细分析。 无论如何,这将是非常特定于CPU的。 一般来说,如果您确定可能性(例如,> 90%),那么添加此类注释可能是值得的,但是具体使用情况的改进会有很大差异。
现代桌面CPU往往具有非常好的分支预测。 无论如何,如果您的代码处于热门路径中,动态分支预测器将很快发现该分支有其自身的偏见。 如果没有可用的动态分支信息,这些提示主要用于帮助启动静态预测器。
在x86上,静态预测器预测不向前分支,不向后向分支(因为它们通常指示循环)。 编译器将因此调整静态代码布局以匹配预测。 (这也可能有助于在相邻的缓存行上放置热路径,这可能会有所帮助。)
在PPC上,一些跳转指令有点预测它们的可能性。 我不知道编译器是否也会重新安排代码。
我不知道ARM CPU如何预测分支。 作为低功耗设备,它可能不太复杂的分支预测,而静态预测可能会产生更多影响。
链接地址: http://www.djcxy.com/p/9339.html上一篇: Are there any perfomance test results for usage of likely/unlikely hints?