-1

一个变量将被设置为一个值数千次。检查变量是否已设置为如下值是否会更好地提高性能:

    int a = 0;
    while (true) {
        if (a != 3) a = 3;
    }

还是我应该离开它:

    int a = 0;
    while (true) {
        a = 3;
    }

PS 我在 Visual Studio 2010 中对每个迭代进行了 15000 次迭代(带有#include ctimeclock()函数),它们都给出了相同的 62 毫秒结果。那么这是否意味着没有实际差异?

4

2 回答 2

6

实际上,我会说比较它比简单地分配值要慢。但在实践中,这几乎无关紧要。

你有性能问题吗?还是考虑优化?请记住:过早的优化是万恶之源

于 2013-06-08T16:03:51.190 回答
3

设置变量需要一次内存访问。读取变量并将其与常量进行比较也需要一次内存访问。

如果您进行 15000 次迭代,第一个将进行 15,000 次比较和 1 次设置,总共 15,001 次内存访问。第二个将做 15,000 组,总共 15,000 次内存访问。所以第一个应该稍微慢一点,但是你没有做足够的迭代来注意到它。

于 2013-06-08T16:04:12.690 回答