循环中的性能差异

时间:2010-01-13 10:57:30

标签: c# performance

  

可能重复:
  Difference between declaring variables before or in loop?

当我编写类似这样的东西时,是否存在任何(或任何值得注意的)性能差异(考虑将数十或数十万行从DB加载到Foo对象的集合中):

...
Foo myFoo;

while(reader.Read())
{
    myFoo = new Foo();
    myFoo.SomeProperty = reader.GetValue(0);
    ...
    fooCollection.Add(myFoo);
}

或者

...

while(reader.Read())
{
    Foo myFoo = new Foo();
    myFoo.SomeProperty = reader.GetValue(0);
    ...
    fooCollection.Add(myFoo);
}

2 个答案:

答案 0 :(得分:4)

你在两个片段的循环的每个迭代中创建一个新的Foo实例,所以我不希望看到差异。

您应该使用像eqatec profiler这样的工具来描述您的代码:

http://www.eqatec.com/tools/profiler

答案 1 :(得分:2)

实际上编译器会在每个实例中生成相同的IL。

查看类似问题herehere