Recherche…


Syntaxe

  • stopWatch.Start () - Démarre le chronomètre.
  • stopWatch.Stop () - Arrête le chronomètre.
  • stopWatch.Elapsed - Obtient le temps total écoulé mesuré par l'intervalle en cours.

Remarques

Les chronomètres sont souvent utilisés dans les programmes de benchmarking au code temporel et permettent de voir comment les différents segments de code sont optimaux pour s'exécuter.

Créer une instance d'un chronomètre

Une instance Chronomètre peut mesurer le temps écoulé sur plusieurs intervalles, le temps total écoulé étant l'ensemble des intervalles individuels ajoutés. Cela donne une méthode fiable pour mesurer le temps écoulé entre deux événements ou plus.

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 dans System.Diagnostics , vous devez donc ajouter à l' using System.Diagnostics; à votre fichier.

IsHighResolution

  • La propriété IsHighResolution indique si le minuteur est basé sur un compteur de performances haute résolution ou basé sur la classe DateTime.
  • Ce champ est en lecture seule.
// 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

La minuterie utilisée par la classe Chronomètre dépend du matériel et du système d'exploitation du système. IsHighResolution est vraie si le minuteur Chronomètre est basé sur un compteur de performance haute résolution. Sinon, IsHighResolution est false, ce qui indique que la minuterie du chronomètre est basée sur la minuterie du système.

Les ticks dans Stopwatch dépendent de la machine / du système d'exploitation, vous ne devriez donc jamais compter sur le nombre de ticks du chronomètre pour que les secondes soient identiques entre deux systèmes, voire sur le même système après un redémarrage. Ainsi, vous ne pouvez jamais compter sur les ticks de Chronomètre pour avoir le même intervalle que les ticks DateTime / TimeSpan.

Pour obtenir une heure indépendante du système, veillez à utiliser les propriétés ElapsedMilliseconds ou Stopwatch, qui prennent déjà en compte le nombre de secondes par seconde.

Chronomètre doit toujours être utilisé sur Datetime pour les processus de synchronisation car il est plus léger et utilise Dateime s'il ne peut pas utiliser un compteur de performance haute résolution.

La source



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow