Время выполнения приложения в Visual Studio



Я решаю некоторые задачи алгоритма в c# и запускаю их как консольное приложение.



Чтобы проверить эффективность приложений, я хотел бы посмотреть, каково их время выполнения.



В настоящее время я печатаю время в начале программы и в конце и вычисляю разницу во времени ,но есть ли способ уменьшить эффект наблюдателя ?

Какой-то встроенный инструмент/плагин, о котором я не знаю ?
1282   3  

3 ответов:

Вы должны использовать класс Stopwatch, который специально разработан для этого.

Чтобы избежать измерения времени JIT, вы также должны выполнить каждый алгоритм по крайней мере один раз, прежде чем измерять что-либо, чтобы у JIT было время для выполнения.

При измерении алгоритмов вы должны выполнить каждый из них сотни раз и взять среднее время выполнения.

Наиболее важным источником задержки, обусловленной эффектом наблюдателя, является сама печать. Другой потенциальный замедлитель-форматирование текста отладочного сообщения. Поэтому я предлагаю следующее:

  • Если вы можете предвидеть количество циклов и количество этапов в цикл, создайте массив для хранения информации о времени. Если не использовать динамический список.
  • во время выполнения сохраняйте время и дополнительную информацию в этом массиве или список.
  • Если возможно, не храните сообщения вместе со временем, но коды, для Пример 1=Стадия 1, 2=стадия 2 и т. д.
  • в конце выполнения сбросьте всю информацию на экран или файл и отформатируйте сообщения по мере необходимости.

Используйтекласс секундомера . Посмотрите на метод ниже для примера.

using System.Diagnostics;

    public void yourAlgorithm()
        {

            Stopwatch timePerParse = Stopwatch.StartNew();
            /** -- TODO --**/

            timePerParse.Stop();
            Console.WriteLine(timePerParse.ElapsedMilliseconds);


        }

Comments

    Ничего не найдено.