如何在 C# 中进行性能测试

NIl*_*nke 8 c# testing c#-4.0

如何在 C# 中测试性能?

我现在所知道的就是使用:

Stopwatch sw = new Stopwatch();

sw.Start();
{
     //code to test
}
sw.Stop();
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以做到这一点还是上述方法错误?

Hei*_*nzi 6

Stopwatch是一种测量特定代码块的执行时间的好、简单的方法。对于大规模性能测试,可以使用好的工具,例如以下 SO 问题中列出的工具:


如果您自己对代码进行基准测试(使用Stopwatch或其他一些低级工具),则需要注意一些事项:

  • 在最准确地类似于目标环境的环境中运行测试:发布版本,未附加调试器,类似的硬件。
  • 请记住,一段代码的第一次运行可能具有与后续运行显着不同的性能特征(由于缓存、JIT-ing、一次性初始化程序等)。如果您对平均执行时间感兴趣,请首先至少进行一次“预热”迭代。

几年前,C# 博主 Eric Lippert 就该主题撰写了一个多部分系列: