提高创建多个对象的性能

时间:2012-01-05 19:47:37

标签: c# .net

我有以下代码来创建对象:

foreach(string s in stringlist){
  AUser myuser = new AUser(s, "Employee");
  if(myuser.empid != null){
    userlist.Add(myuser);
  }
}

上述每个步骤都相当快,但创建10个用户开始需要几秒钟。有更好的方法吗?

- 编辑 -

根据所有答案,很明显我应该专注于构造函数。谢谢,因为这是我正在寻找的。是的 - 在构造函数中有很多可以优化的东西......这将耗费时间。不确定如何接受评论建议或答案,但这一切都非常有用。

1 个答案:

答案 0 :(得分:2)

当你进行调试时,使用F10来跳过代码,创建10个对象需要几秒钟才能运行的东西几乎不可察觉。例如,假设它创建了20个对象并且需要2秒才能运行。这意味着每个对象需要创建1/10秒。当按下F10时,人类很难注意到1/10秒。您还必须考虑附加调试器的开销。

尝试在创建对象之前初始化日期变量,将其设置为DateTime.Now。然后在创建DateTime.Now.Subtract(someDate).TotalMilliseconds之类的对象后打印出已用时间,以查看问题所在。而且,正如@MikeNakis所说,如果userList变量在正常IList<>之上有任何额外的代码,那么你也应该对其进行分析。

还有其他方法可以分析,甚至内置到框架中,但DateTime方法是查找问题的快捷方法。

编辑:在我看到-1之后提出了问题,因为这是没有经验的学习如何找到性能问题的好例子。