循环优点/缺点

时间:2014-06-26 13:41:06

标签: c# loops

我对其他语言感到好奇,但为了规范,我会问C#。假设我有一个包含多个简单循环的程序:

 for (int i = 0; i < 10; i++)
     MessageBox.Show(i.ToString());

 for (int i = 10; i < 20; i++)
     MessageBox.Show(i.ToString());

 for (int i = 20; i < 30; i++)
     MessageBox.Show(i.ToString());

如果我选择让我成为一个全局变量:

 int i;

 for ( i = 0; i < 10; i++)
     MessageBox.Show(i.ToString());

 for ( i = 10; i < 20; i++)
     MessageBox.Show(i.ToString());

 for ( i = 20; i < 30; i++)
     MessageBox.Show(i.ToString());

比另一个更快吗?一种方式消耗的内存多于另一种方式吗?

2 个答案:

答案 0 :(得分:1)

表演之间没有任何明显的差异。 第二个程序比第一个程序快little,但只记得一点。

让我告诉你为什么在第一个程序变量中我必须创建3个不同的时间,因为每次我只有一个块范围所以让我们假设在内存中创建变量i的时间是从记忆中摧毁它的时间是b。

现在在第一个程序中所花费的时间将是执行指令+ 3a + 3b的时间,因为变量i被加载3次并被破坏3次。

现在在第二个程序中所花费的时间将是执行指令+ a + b的时间,因为变量i被加载到内存中一次并在程序完成后被销毁。

a和b是非常小的值,除非您使用very very处理速度慢{{1}}的机器,因此在性能方面没有明显的差异。

答案 1 :(得分:0)

当您声明变量时,您的计算机会为该变量保留一个内存空间。当没有方法调用它时,计算机将其检查为&#34;未使用&#34;并释放内存空间。显然这些操作占用了cpu时间,但是时间太短而你的cpu太快了,你甚至会注意到差异(除非你有一个10Hz的处理器:P) 因此,在理论上,第二个程序比第一个程序更快。