Mik*_*ren 5 language-agnostic optimization performance compiler-optimization branch-prediction
我在StackOverflow上读到了这个
if(someCondition)
{
someCode();
}
else
{
alternateCode();
}
Run Code Online (Sandbox Code Playgroud)
由于易受分支错误预测的影响,效率可能很低(例如,请参阅此问题).
所以是一个switch构造,例如,
switch (someCondition)
{
case (someCase):
something();
break;
case (otherCase):
someOtherInstructions();
break;
default:
defaultAction();
break;
}
Run Code Online (Sandbox Code Playgroud)
在这方面有什么不同(除了我允许三种可能性的事实)?
if语句并不“昂贵”,条件分支可能会“昂贵”。 问题不在于您选择编写众多不同的高级语句中的哪一个- if、switch、for、while等。问题是现代计算机可以很好地执行无条件指令路径,但当存在决策点时,它们可能会变慢。由于没有决策点(即条件分支),您就无法在计算中做任何有趣的事情,因此您不妨忽略高级语言构造的选择。
| 归档时间: |
|
| 查看次数: |
240 次 |
| 最近记录: |