【发布时间】:2012-01-05 21:52:12
【问题描述】:
哪个性能更好?这可能与其他编程语言不一致,所以如果它们不同,或者您可以用您对特定语言的知识回答我的问题,请解释一下。
我将使用 c++ 作为示例,但我想知道它在 java、c 或任何其他主流语言中是如何工作的。
int x = 0;
while (x < 10) {
cout << x << "\n ";
x++;
}
VS
for ( int x = 1; x < 10; x++)
cout << x << "\n ";
哪一个表现更好?如果是 for 循环,那么假设已经声明了一个整数,我们可以在 while 循环增量中使用,我们不需要为 while 循环创建?
示例:
int age = 17; //this was made for something else in the code, not a while loop. But fortunately for us, our while loop just so happened to need the number 17.
while (age < 25) {
cout << age << "\n ";
age++;
}
这个实例会使 while 循环成为比创建 for 循环更好的选择吗?我看到的问题与此有些相似,但我不认为这是重复的,或者其他问题的任何答案都回答了我的问题。
我想要一个关于这个问题的解释,解释它是否是特定于编译器的,它是如何工作的,或者任何对这个问题有好的答案。
【问题讨论】:
-
这是最糟糕的过早优化。 没关系.
-
请不要在没有分析的情况下进行优化。在您编写的所有代码的 99.99% 中,您不会看到这些循环之间有任何区别。如果你要优化这样的东西,至少看看程序集。不同类型的循环会有所不同。
-
从性能的角度来看,我非常怀疑是否存在任何差异。我更担心可读性。
-
在这种情况下,您必须查看生成的汇编/IL 代码。在大多数情况下,编译器将生成相同的代码,而在其他少数情况下,它只会进行一些重新排序。总而言之,这里没有明显的区别。
-
@Voo 不幸的是我不知道任何程序集
标签: java c++ c performance