我有以下代码来创建对象:
foreach(string s in stringlist){
AUser myuser = new AUser(s, "Employee");
if(myuser.empid != null){
userlist.Add(myuser);
}
}
上述每个步骤都相当快,但创建10个用户开始需要几秒钟。有更好的方法吗?
- 编辑 -
根据所有答案,很明显我应该专注于构造函数。谢谢,因为这是我正在寻找的。是的 - 在构造函数中有很多可以优化的东西......这将耗费时间。不确定如何接受评论建议或答案,但这一切都非常有用。
答案 0 :(得分:2)
当你进行调试时,使用F10来跳过代码,创建10个对象需要几秒钟才能运行的东西几乎不可察觉。例如,假设它创建了20个对象并且需要2秒才能运行。这意味着每个对象需要创建1/10秒。当按下F10时,人类很难注意到1/10秒。您还必须考虑附加调试器的开销。
尝试在创建对象之前初始化日期变量,将其设置为DateTime.Now
。然后在创建DateTime.Now.Subtract(someDate).TotalMilliseconds
之类的对象后打印出已用时间,以查看问题所在。而且,正如@MikeNakis所说,如果userList
变量在正常IList<>
之上有任何额外的代码,那么你也应该对其进行分析。
还有其他方法可以分析,甚至内置到框架中,但DateTime方法是查找问题的快捷方法。
编辑:在我看到-1之后提出了问题,因为这是没有经验的学习如何找到性能问题的好例子。