Я хочу измерить выполнение фрагмента кода, и мне интересно, какой лучший способ сделать это?
Вариант 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:
используя 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");
Это не просто для сравнительного анализа, это фактически часть приложения. Время, необходимое для выполнения функции, является релевантными данными. Однако он не должен быть атомарным или сверхточным.
Какой вариант лучше для производственного кода, или кто-то еще использует что-то другое и, возможно, лучше?