有人知道HiPerfTimer或StopWatch类是否更适合基准测试,为什么?
答案 0 :(得分:36)
Stopwatch基于高分辨率计时器(如果可用),您可以使用IsHighResolution
进行检查答案 1 :(得分:18)
在高分辨率计时方面,它们是相同的。
两者都用这个:
[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更好的功能。
答案 2 :(得分:6)
StopWatch-它也适用于不支持高分辨率性能计数器的系统,并且您不需要任何外部库来使用它。
如果不支持高分辨率计数器,则另一个抛出Win32Exception。