cpu-architecture - 动态分支预测什么时候有用?

标签 cpu-architecture branch-prediction

<分区>

对于静态分支预测,总是假设该分支未被采用,而对于动态分支预测,如果该分支在此之前被采用,那么它更有可能再次被采用。但是我无法想出这有用的情况吗?什么应用程序将从中受益?为什么不直接使用静态分支预测?

最佳答案

    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/

相关文章:

data-structures - lisp 等链表的表示

c++ - 为什么 for 循环体中的一个基本算术运算执行得比两个算术运算慢?

android - `armeabi-v7a` 和 `armeabi` 是为 Android 应用程序放入 Application.mk 的仅有的两个 arm 选项吗?

gcc - 您可以将 builtin_expect 与 switch 语句一起使用吗

performance - switch 和 if 一样糟糕吗?

c - 无分支溢出处理

math - CPU是怎么做减法的?

mips - 为什么 'opcode' 字段和 'funct' 字段在 MIPS 中是分开的?

performance - 现代 CPU 中的小分支