高性能定时器与StopWatch

时间:2009-09-28 07:32:10

标签: c# .net timer benchmarking

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

3 个答案:

答案 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。