我希望通过这个问题,我们可以收集一些好的建议来衡量.Net应用程序的性能。
就个人而言,我处于一种我想测试算法的情况,我想确保测量结果是合理的。因此,我会做以下事情:
(* 1)如果输入并不总是相同,那么平均运行时间可能是有意义的。另请参阅Accurately measure elapsed wall clock time in .NET
所以问题是:
上述清单中是否有任何我(或其他人)遗漏的内容?并详细说明为什么建议(在列表或新列表中)有效。
更新:是否有人在进行基准测试之前使用ngen
?如果是,为什么?
谢谢,Lasse Espeholt
答案 0 :(得分:1)
答案 1 :(得分:1)
如果您正在测试一种算法,那么您还可以编写一个小型测试应用程序(简单的DIY解决方案),推入一堆输入,运行一百万次迭代,然后取平均值。如果您需要测试多种算法,那么您可以将小型测试应用程序扩展为一个小型测试工具,并获得所有测试算法的结果。如果使用持续集成,则此测试工具可以为您提供有关这些算法性能的频繁反馈。
或者,您使用Visual Studio团队版附带的分析工具。
关于你的#2评论,System.Diagnostics.Stopwatch
类与通用操作系统(例如windows)上的类似。