2010-09-24 12 views
5

¿Cuál es la forma más conveniente de medir con precisión el tiempo del reloj de pared transcurrido en .NET? Estoy buscando algo con una precisión de microsegundo si es posible (10^-6 segundos).Mida con precisión el tiempo del reloj de pared transcurrido en .NET

+2

¿El "tiempo de reloj de pared" transcurrido es equivalente al tiempo transcurrido? – spender

+0

@spender: [Hora del reloj de pared] (http://en.wikipedia.org/wiki/Wall_clock_time) es el tiempo total necesario para completar una tarea. –

+0

Ah. OK, a diferencia del tiempo de CPU. Ya lo pillo. – spender

Respuesta

7

System.Diagnostics.Stopwatch es su mejor apuesta. Sin embargo, la precisión exacta dependerá del hardware de la computadora que esté utilizando, es decir, si hay disponible un contador de rendimiento de alta resolución. (Se puede comprobar que con el campo IsHighResolution.)

uso de la muestra:

Stopwatch sw = Stopwatch.StartNew(); 
// Do stuff here 
sw.Stop(); 
TimeSpan time = sw.Elapsed; 

Tenga en cuenta que si se utiliza la propiedad ElapsedTicks, que se mide en temporizador garrapatas que no es lo mismo que las garrapatas utilizan en DateTime y TimeSpan. Eso me ha sorprendido antes, por eso siempre uso ElapsedMilliseconds o la propiedad Elapsed.

+0

Esto se ve perfecto. En mi sistema, el campo 'Frecuencia' reclama una resolución de más de una décima de microsegundo. – pauldoo

Cuestiones relacionadas