代码之家  ›  专栏  ›  技术社区  ›  yojimbo87 jesuisbonbon

循环中的性能差异[重复]

  •  1
  • yojimbo87 jesuisbonbon  · 技术社区  · 14 年前

    可能重复:
    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 回复  |  直到 7 年前
        1
  •  2
  •   Community clintgh    7 年前

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

    见类似问题 here here

        2
  •  4
  •   Charlie Gevious    14 年前

    在这两个代码段中的每个循环迭代中,您都在创建一个新的Foo实例,所以我不希望看到有什么不同。

    不过,您应该使用eqatec profiler之类的工具来评测代码:

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