Buscar..


Sintaxis

  • stopWatch.Start () - inicia el cronómetro.
  • stopWatch.Stop () - Detiene el cronómetro.
  • stopWatch.Elapsed: obtiene el tiempo total transcurrido medido por el intervalo actual.

Observaciones

Los cronómetros a menudo se usan en programas de evaluación comparativa para calcular el tiempo y ver cómo se ejecutan los diferentes segmentos de código óptimos.

Creando una instancia de un cronómetro

Una instancia de Cronómetro puede medir el tiempo transcurrido en varios intervalos, y el tiempo total transcurrido es la suma de todos los intervalos individuales. Esto proporciona un método confiable para medir el tiempo transcurrido entre dos o más eventos.

Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();

double d = 0;
for (int i = 0; i < 1000 * 1000 * 1000; i++)
{
    d += 1;
}

stopWatch.Stop();
Console.WriteLine("Time elapsed: {0:hh\\:mm\\:ss\\.fffffff}", stopWatch.Elapsed);

Stopwach está en System.Diagnostics por lo que necesita agregar using System.Diagnostics; a su archivo.

IsHighResolution

  • La propiedad IsHighResolution indica si el temporizador se basa en un contador de rendimiento de alta resolución o en la clase DateTime.
  • Este campo es de solo lectura.
// Display the timer frequency and resolution.
if (Stopwatch.IsHighResolution)
{
    Console.WriteLine("Operations timed using the system's high-resolution performance counter.");
}
else 
{
    Console.WriteLine("Operations timed using the DateTime class.");
}

long frequency = Stopwatch.Frequency;
Console.WriteLine("  Timer frequency in ticks per second = {0}",
    frequency);
long nanosecPerTick = (1000L*1000L*1000L) / frequency;
Console.WriteLine("  Timer is accurate within {0} nanoseconds", 
    nanosecPerTick);
}

https://dotnetfiddle.net/ckrWUo

El temporizador utilizado por la clase de cronómetro depende del hardware del sistema y del sistema operativo. IsHighResolution se cumple si el temporizador del cronómetro se basa en un contador de rendimiento de alta resolución. De lo contrario, IsHighResolution es falso, lo que indica que el temporizador de cronómetro se basa en el temporizador del sistema.

Las marcas en el cronómetro dependen de la máquina / sistema operativo, por lo tanto, nunca debe contar con la ración de tictac de cronómetro a segundos para que sean iguales entre dos sistemas, y posiblemente incluso en el mismo sistema después de un reinicio. Por lo tanto, nunca se puede contar con que los tics de cronómetro tengan el mismo intervalo que los tics DateTime / TimeSpan.

Para obtener un tiempo independiente del sistema, asegúrese de usar las propiedades de tiempo transcurrido o de milisegundos transcurridos del cronómetro, que ya tienen en cuenta el cronómetro. Frecuencia (tics por segundo).

El cronómetro siempre se debe usar en Datetime para los procesos de sincronización, ya que es más liviano y usa Dateime si no puede usar un contador de rendimiento de alta resolución.

Fuente



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow