Измерение времени выполнения в C #

Я хочу измерить выполнение фрагмента кода, и мне интересно, какой способ лучше всего сделать это?

Вариант 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");

Вариант 2: using System.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");

Это не просто для тестирования, это фактически часть приложения. Время, необходимое для выполнения функции, является релевантными данными. Однако он не обязательно должен быть атомарным или сверхточным.

Какой вариант лучше для производственного кода, или кто-то другой использует что-то другое и, возможно, лучше?

37
задан Leniel Maccaferri 11 October 2010 в 02:55
поделиться