Cla*_*diu 0 c optimization performance conditional
if if是否更好,如果if语句中的每个块都返回,或者是否更好地拥有ifs链?具体而言,如果最快的话:
A:
if (condition1) {
code1;
return a;
}
if (condition2) {
code2;
return b;
}
//etc...
Run Code Online (Sandbox Code Playgroud)
B:
if (condition1) {
code1;
return a;
}
else if (condition2) {
code2;
return b;
}
//etc...
Run Code Online (Sandbox Code Playgroud)
Mik*_*els 43
它没有任何区别,这是对微优化的不必要的尝试.
pax*_*blo 14
C标准没有规定基于C代码创建的机器语言.如果您了解底层架构,有时可以做出假设,但即使这是不明智的.
过去很久以前,CPU就是简单的野兽,因为它们具有流水线,多级缓存和各种其他奇妙的东西,可以将速度提升到极限.
在您遇到特定问题之前,您不应该担心这种级别的优化(有些人会说"完全").
编写代码以使其可读.
这应该是规则1,2和3.您认为哪个是软件开发中最大的问题,代码以最高速度的99.5%运行,或者开发人员花费数天时间试图找出和/或修复同事(甚至是同事)自己)六个月前呢?
我的建议是只有当你发现问题时才会担心性能,然后在目标平台上进行基准测试,看看哪里可以获得最大的改进.if通过在代码中的其他地方选择更好的算法,语句的1%改进可能相形见绌(其他事情,例如代码被调用的次数,当然是相同的).应始终针对优化进行优化,以获得最佳效果.
| 归档时间: |
|
| 查看次数: |
1388 次 |
| 最近记录: |