c# - usar - Temporizador de alto rendimiento versus cronómetro
timer regresivo c# (3)
¿Alguien sabe si el HiPerfTimer o la clase HiPerfTimer es mejor para el benchmarking, y por qué?
Son los mismos cuando se trata de tiempos de alta resolución.
Ambos usan esto:
[DllImport("Kernel32.dll")]
private static extern bool QueryPerformanceCounter(out long PerformanceCount);
y esto:
[DllImport("Kernel32.dll")]
private static extern bool QueryPerformanceFrequency(out long Frequency);
para hacer el tiempo subyacente. (Puede verificar esto con Reflector.NET). Usaría StopWatch porque ya es parte del framework (no es necesario vincular otro dll) y tenía mejores características que HiPerfTimer.
StopWatch: también funciona en sistemas que no admiten un contador de rendimiento de alta resolución y no necesita bibliotecas externas para usarlo.
El otro arroja una excepción Win32Exception si no hay soporte para un contador de alta resolución.
StopWatch se basa en el temporizador de alta resolución (donde esté disponible), puede verificarlo con IsHighResolution