Mesure le temps d'exécution en C#

Je veux mesurer l'exécution d'un morceau de code, et je me demande quelle est la meilleure méthode pour ce faire est?

Option 1:

DateTime StartTime = DateTime.Now;

//Code

TimeSpan ts = DateTime.Now.Subtract(StartTime);
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
        ts.Hours, ts.Minutes, ts.Seconds,
        ts.Milliseconds / 10);
Console.WriteLine(elapsedTime, "RunTime");

Option 2:
en utilisant le Système.Diagnostics;

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

    //Code

    stopWatch.Stop();
    //Get the elapsed time as a TimeSpan value.
    TimeSpan ts = stopWatch.Elapsed;

    //Format and display the TimeSpan value.
    string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
        ts.Hours, ts.Minutes, ts.Seconds,
        ts.Milliseconds / 10);
    Console.WriteLine(elapsedTime, "RunTime");

Ce n'est pas simplement pour l'analyse comparative, sa fait partie de l'application. Le temps de la fonction prend de l'exécution des données pertinentes. Il n'a cependant pas besoin d'être atomique ou hyper-précis.

Quelle est la meilleure option pour la production de code, ou quelqu'un d'autre de quelque chose de différent et peut-être mieux?

  • Bonne question! Je suis curieux de savoir la réponse!
InformationsquelleAutor Jake | 2010-10-11