如何衡量.Net应用程序的性能

时间:2011-06-18 12:39:14

标签: .net visual-studio performance

我希望通过这个问题,我们可以收集一些好的建议来衡量.Net应用程序的性能。

就个人而言,我处于一种我想测试算法的情况,我想确保测量结果是合理的。因此,我会做以下事情:

  • 发布模式编译(优化等)
  • 在Visual Studio外运行应用程序(避免不必要的检查等)。
  • 多次循环代码并占用最短时间(确保之前进行JIT编译并避免定期GC,操作系统特定内容等)(* 1)
  • 使用正确的时钟(* 2)

(* 1)如果输入并不总是相同,那么平均运行时间可能是有意义的。另请参阅Accurately measure elapsed wall clock time in .NET

所以问题是:

上述清单中是否有任何我(或其他人)遗漏的内容?并详细说明为什么建议(在列表或新列表中)有效。

更新:是否有人在进行基准测试之前使用ngen?如果是,为什么?

谢谢,Lasse Espeholt

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

如果您正在测试一种算法,那么您还可以编写一个小型测试应用程序(简单的DIY解决方案),推入一堆输入,运行一百万次迭代,然后取平均值。如果您需要测试多种算法,那么您可以将小型测试应用程序扩展为一个小型测试工具,并获得所有测试算法的结果。如果使用持续集成,则此测试工具可以为您提供有关这些算法性能的频繁反馈。

或者,您使用Visual Studio团队版附带的分析工具。

关于你的#2评论,System.Diagnostics.Stopwatch类与通用操作系统(例如windows)上的类似。