有谁知道HiPerfTimer或StopWatch类是否更适合进行基准测试,为什么?
问问题
25580 次
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 回答