场景一:改变程序运行顺序以提高Cache命中率
给定代码逻辑:当条件A成立,则执行B;否则执行C。
if (cond A) {
// do sth. B
} else {
// do sth. C
}
CPU分支预测器机制:对于if条件语句,如果CPU可以预测到接下来执行的是if还是else里的指令,就可以提前将指令加载到缓存中,这样CPU就可以直接从Cache读取到指令,以加快执行速度。
下面代码给出两个操作逻辑:数组遍历和排序。
uint32_t a[100] = {
0U};
// do sth, to assign random value to a
...
...
// for and if logic