【发布时间】:2010-10-29 01:48:33
【问题描述】:
变量x 是具有可能值的整数:-1, 0, 1, 2, 3。
哪个表达式会更快(以 CPU 计时):
1. (x < 0)
2. (x == -1)
语言:C/C++,但我想所有其他语言都一样。
附:我个人认为答案是(x < 0)。
对于大师来说更广泛:如果 x 从 -1 到 2^30?
【问题讨论】:
-
要回答如此低级的考虑,CPU 架构将是一个最小的信息,你不觉得吗?但即便如此,在这些条件下需要不同数量的周期的 CPU 还是相当原始的。
-
为什么这是一个糟糕的问题?一个彻底的答案让所有与更好地理解处理器如何工作以及类似的东西相关联。这不是一件好事吗?
-
最后一点:没有办法概括这样的问题的答案。最好的方法是用你的生产编译器和一个有代表性的测试系统来尝试这两种方法,然后比较结果。我很惊讶这种问题出现的频率如此之高,而几分钟的基准测试可以提供答案。
-
我相信他只是想知道更多。优化这个是愚蠢的。我自己其实很感兴趣,因为我不知道。 +1 来自我 :)
-
@Ismael:听起来你从来没有处理过嵌入式代码。
标签: c++ c performance optimization cpu