高级语言条件语句效率问题
“通常为了减少时间损失,采用猜测法,即当条件转移指令从取指阶段进入执行阶段时,指令部件仍按顺序预取下一条指令。这样,如果条件不成立,转移没有发生,则没有时间损失;若条件成立,转移发生,则所取的指令必须
if else 我理解效率应该是类似的,cpu 的分支预测,两个可能都会跑,最终选一个,但是 switch 语句就不一样了。
switch 比较难做分支预测,如果性能要求比较高,switch 可以这样写:
if (condition == a) {
// 最有可能的分支
return ...; // 完成后跳转
}
switch(condition) {
case b: ...
case c: ...
}