读取和比较C#中的重写效率

时间:2013-08-05 05:10:17

标签: performance time-complexity processing-efficiency

问题是,重写变量比读取比较更有效吗?

假设您有以下代码:

代码1

int x = 0;

for( int i = 1; i <= 10000; i++ )
{
    x = 333;
}

代码2

int x = 0;

for( int i = 1; i <= 10000; i++ )
{
    if( x != 333 )    
        x = 333;
}

哪种代码效率更高?

1 个答案:

答案 0 :(得分:0)

读取和写入都需要一个处理器周期(或者甚至更少,取决于处理器架构):因此第二个选项稍微有点“低效”,因为它将导致200,001次操作(100,000次增量,100,000次)比较第一个,它将进行200,000次操作(100,000次增量和100,000次分配)。

虽然有一点摩擦。您的编译器可能会识别第一个循环的无意义,并将其优化为333到变量x的单个赋值。它将完全消除循环,以及重复相同的分配。因此,将有一个,而不是200,000个操作,或200,001个。