У меня есть обычная страница asp.net, содержащая некоторый код, который я хочу измерить время выполнения. Я создал очень простой вспомогательный класс для этой цели:Измерение времени на странице ASP.NET
public class Timing
{
private long m_ticksBefore;
private long m_ticksAfter;
public void Before()
{
m_ticksBefore = DateTime.Now.Ticks;
}
public void After()
{
m_ticksAfter = DateTime.Now.Ticks;
}
public void TraceTime(string note)
{
TimeSpan span = new TimeSpan(m_ticksAfter - m_ticksBefore);
System.Diagnostics.Trace.Write(string.Format("\n...Timing for {0}...\nTicks: \t{1}\nMilliseconds: \t{2}\nSeconds: \t{3}\n..................", note, span.Ticks, span.TotalMilliseconds, span.TotalSeconds));
}
}
Я экземпляр нового объекта синхронизации и перенесите код Я желаю, чтобы контролировать с до() и после методов и, наконец, вызов метода TraceTime() в для вывода результата в окно вывода в среде IDE.
Странно, что первый запрос на страницу приводит к ожидаемому результату синхронизации около 40 миллисекунд, но обновление страницы (F5) дает мне 0 тиков времени выполнения. Даже выполнив страницу с новыми параметрами, вынуждающих выполнение различного кода в пределах зоны наблюдения показывает плоский 0.
Если я использую System.Diagnostics.StopWatch вместо этого я получить гораздо более реалистичные результаты
Stopwatch watch1 = Stopwatch.StartNew();
//Some code to monitor
watch1.Stop();
System.Diagnostics.Trace.Write(watch1.ElapsedTicks);
для меня код кажется очень похожим, и я не могу понять, почему первый подход не позволяет выводить реалистичные результаты ...
Кажется, это какая-то проблема оптимизации, которая выполняется за сценой, но я не очень возьми. Возможно, это связано с моим личным вопросом времени, то есть вопросом времени на ночь ...
Проблема в том, что одно и то же кодирование занимает 40 мс в одной ситуации, а 0 - в другом ... конечно, код, способный реагировать по-разному в сценарии обратной передачи, но он этого не упоминал. –
Могу сказать, что на самом деле он не принимает 0 мс. Это все еще довольно капля, но от 40 мс до <10 мс гораздо более правдоподобно, чем от 40 мс до 0 мс. – stevemegson
Я вижу .. это правда. –