有人知道哪个更适合用于基准测试,以及为什么?是 HiPerfTimer 还是 StopWatch 类?
有人知道哪个更适合用于基准测试,以及为什么?是 HiPerfTimer 还是 StopWatch 类?
就高分辨率计时而言,它们是相同的。
两者都使用以下内容:
[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具有更好的功能。
StopWatch- 它可以在不支持高分辨率性能计数器的系统上工作,您无需使用任何外部库即可使用它。
另一个会在没有高分辨率计数器支持时抛出Win32Exception异常。