【问题标题】:What is the best way to measure execution time of a function? [duplicate]测量函数执行时间的最佳方法是什么? [复制]
【发布时间】:2008-12-19 13:10:21
【问题描述】:

显然我可以做到,DateTime.Now.After - DateTime.Now.Before 但一定有更复杂的东西。

感谢任何提示。

【问题讨论】:

    标签: c# performance benchmarking execution-time


    【解决方案1】:
    【解决方案2】:

    我绝对建议你看看System.Diagnostics.Stopwatch

    当我四处寻找有关秒表的更多信息时,我发现了这个网站;

    Beware of the stopwatch

    还有一种可能

    Process.TotalProcessorTime

    【讨论】:

    • 文章更新-秒表已改进。
    • 您能告诉我TotalProcessorTimeStopwatch 的区别吗?我没有搜索任何信息..
    【解决方案3】:

    使用分析器

    您的方法仍然有效,但如果您正在寻找更复杂的方法。我建议使用C# Profiler

    他们的优势是:

    • 你甚至可以得到一个语句级别 分手
    • 您的代码库无需更改
    • 仪器的开销通常非常少,因此可以获得非常准确的结果。

    还有很多可用的open-source

    【讨论】:

    • 使用分析器也有缺点:信息是事后,仍然需要检测,不适合保存在生产代码中(我们可能想衡量工作应用程序,而不仅仅是在开发期间)。最后一点:分析有时可能是多余的。
    【解决方案4】:

    Tickcount 很好,但我建议运行 100 或 1000 次,然后计算平均值。 不仅使它更可测量 - 在真正快速/短功能的情况下,而且有助于处理由开销引起的一些一次性影响。

    【讨论】:

      猜你喜欢
      • 2017-09-04
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 2016-01-07
      • 2020-01-01
      • 2014-09-21
      • 2013-02-24
      相关资源
      最近更新 更多