<分区>
对于静态分支预测,总是假设该分支未被采用,而对于动态分支预测,如果该分支在此之前被采用,那么它更有可能再次被采用。但是我无法想出这有用的情况吗?什么应用程序将从中受益?为什么不直接使用静态分支预测?
<分区>
对于静态分支预测,总是假设该分支未被采用,而对于动态分支预测,如果该分支在此之前被采用,那么它更有可能再次被采用。但是我无法想出这有用的情况吗?什么应用程序将从中受益?为什么不直接使用静态分支预测?
最佳答案
boolean b = compute something;
:
for (int j=0; j<1000000; j++)
if (b) one statement;
else another statement;
if
将导致条件分支每次都具有相同的采用/未采用结果,但每次运行可能会有所不同。
(我知道可以通过 if
控制几个 if-free for 循环来更好地编写代码,但这不是这里的重点)
关于cpu-architecture - 动态分支预测什么时候有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53794928/