38

有谁知道HiPerfTimerStopWatch类是否更适合进行基准测试,为什么?

4

3 回答 3

41

秒表基于高分辨率计时器(如果可用),您可以使用IsHighResolution进行检查

于 2009-09-28T07:38:02.847 回答
20

在高分辨率时序方面它们是相同的。

两者都使用这个:

[DllImport("Kernel32.dll")]
private static extern bool QueryPerformanceCounter(out long PerformanceCount);

还有这个:

[DllImport("Kernel32.dll")]
private static extern bool QueryPerformanceFrequency(out long Frequency);

做底层时序。(您可以使用 Reflector.NET 验证这一点)。我会使用 StopWatch,因为它已经是框架的一部分(无需链接另一个 dll)并且它具有比 HiPerfTimer 更好的功能。

于 2009-09-28T07:42:23.150 回答
6

秒表 - 它也适用于不支持高分辨率性能计数器的系统,并且您不需要任何外部库来使用它。

如果不支持高分辨率计数器,则另一个抛出 Win32Exception。

于 2009-09-28T07:41:20.893 回答