【发布时间】:2013-07-18 15:41:02
【问题描述】:
对于一些私人项目,我使用Stopwatch 进行性能评估。
但是在我想要测量的低重复调用次数中,我最终得到 0 ElapsedMilliseconds,
这使得计算平均值变得困难。
我考虑编写自己的秒表类。它可以用刻度计算并根据Stopwatch.ElapsedTicks 和TimeSpan.TicksPerMillisecond 给出一个模糊的ElapsedMicroseconds。这可能不是一个很好的方法。
我绝对需要由 winapi 的高性能计数器支持的东西, 所以 datetime 等是不够的。
还有其他想法吗?
【问题讨论】:
-
您将必须对该函数进行大量调用才能获得良好的测量结果。你说你想要一个everage。跑一堆然后分开。这将为您提供更准确的速度估计。
-
我打了 2,000,000 次电话并计算平均值。但我认为应该有更好的方法来测量较小的数量。
-
我的意思不是将每个相加,而是将 2,000,000 的总时间除以。您尝试进行的测量越小,它就越不准确。
标签: c# performance-testing stopwatch