【发布时间】:2020-11-14 13:09:17
【问题描述】:
为了优化执行速度,建议避免在循环中使用 if 条件。想象有一种情况,loop unswitching不可能可能,但有关条件频率的信息(或估计)是可用的。
if-else-statement 中的条件顺序会影响执行速度吗?
假设我现在(或估计)条件 A 出现 80%,B 出现 15% 和 C 仅 5%,并且计算条件的时间是相等的。这样写循环会更好还是顺序对执行时间没有影响?
for (i in N){
if (A(i))
foo(i)
else if (B(i))
bar(i)
else
foobar(i)
}
是否有关于条件顺序的最佳做法?它依赖于语言吗?如果评估条件的时间不相等怎么办?在这种情况下,最好从最便宜到最贵的顺序排列条件吗?
【问题讨论】:
标签: performance loops if-statement optimization