Как посмотреть время выполнения программы в visual studio

В этом посте мы обсудим, как измерить время выполнения фрагмента кода в C#.

1. Использование Stopwatch Class

The Stopwatch класс из System.Diagnostics пространство имен используется для точного измерения прошедшего времени. В следующем примере показано, как измерить время выполнения с помощью Stopwatch учебный класс.

using System ;
using System . Diagnostics ;
using System . Threading ;
public class Example
public static void Main ( )
Stopwatch stopwatch = new Stopwatch ( ) ;
stopwatch . Start ( ) ;
Thread . Sleep ( 5000 ) ;
stopwatch . Stop ( ) ;
Console . WriteLine ( «Elapsed Time is <0>ms» , stopwatch . ElapsedMilliseconds ) ;
результат: Elapsed Time is 5000 ms

Чтобы получить прошедшее время в виде TimeSpan значение, мы можем сделать так:

using System ;
using System . Diagnostics ;
using System . Threading ;
public class Example
public static void Main ( )
Stopwatch stopwatch = new Stopwatch ( ) ;
stopwatch . Start ( ) ;
Thread . Sleep ( 5000 ) ;
stopwatch . Stop ( ) ;
TimeSpan ts = stopwatch . Elapsed ;
Console . WriteLine ( «Elapsed Time is <0:00>::.» ,
ts . Hours , ts . Minutes , ts . Seconds , ts . Milliseconds ) ;
результат: Elapsed Time is 00:00:05.14

2. Использование DateTime.Now() метод

В качестве альтернативы мы можем получить общее прошедшее время в миллисекундах, используя DateTime.Now . Обратите внимание, что этому решению не хватает высокопроизводительного измерения Stopwatch учебный класс.

Простейший пример использования отладчика в Visual Studio (C#)

using System ;
using System . Threading ;
public class Example
public static void Main ( )
DateTime start = DateTime . Now ;
Thread . Sleep ( 5000 ) ;
DateTime end = DateTime . Now ;
TimeSpan ts = ( end — start ) ;
Console . WriteLine ( «Elapsed Time is <0>ms» , ts . TotalMilliseconds ) ;
Прошедшее время 5005,1603 мс

3. Использование секундомера GetTimestamp() метод

Stopwatch GetTimestamp() Метод возвращает текущее количество тиков базового механизма таймера. 10 000 тиков составляют миллисекунду.

using System ;
using System . Threading ;
using System . Diagnostics ;
public class Example
public static void Main ( )
long start = Stopwatch . GetTimestamp ( ) ;
Thread . Sleep ( 5000 ) ;
long end = Stopwatch . GetTimestamp ( ) ;
Console . WriteLine ( «Elapsed Time is <0>ticks» , ( end — start ) ) ;
Прошедшее время 50111533 тиков

Вот и все, что касается измерения времени выполнения в C#.

Оценить этот пост

Средний рейтинг 4.69 /5. Подсчет голосов: 16

Голосов пока нет! Будьте первым, кто оценит этот пост.

Читайте также:
Учись учиться программа отзывы

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂

КАК ИЗМЕРИТЬ ВРЕМЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ, КОДА, МЕТОДА, ФУНКЦИИ, ЗАПРОСА | C# STOPWATCH | C# ПЛЮШКИ

Подписывайся
2 Комментарии
Большинство голосов
Новейшие Самый старый
Встроенные отзывы
Просмотреть все комментарии
Просмотр комментариев

Загрузить больше комментариев
Просматривать
Подпишитесь на новые публикации

  • Все проблемы
  • Практика DSA
  • 100 самых популярных задач
  • 50 лучших классических задач
  • Лучшие алгоритмы
  • Компилятор С/С++
  • Компилятор Java
  • Компилятор Python
  • Компилятор JavaScript
  • компилятор PHP
  • Компилятор C#
  • Свяжитесь с нами
  • Политика конфиденциальности
  • условия обслуживания
  • Подпишитесь на новые публикации

Источник: www.techiedelight.com

Практическое руководство. Инструментирование автономного компонента .NET Framework и сбор данных о времени с помощью профилировщика из командной строки

Область применения:yesVisual StudionoVisual Studio для Mac noVisual Studio Code

В этом разделе описывается использование средств профилирования командной строки Visual Studio для инструментирования компонентов платформа .NET Framework, .NET Core или .NET 5+, таких как .exe или . DLL-файл и для сбора подробных данных о времени.

Сведения о пути к Средствам профилирования см. в статье Указание пути к программам командной строки средств профилирования. На 64-разрядных компьютерах доступны 64- и 32-разрядные версии этих программ. Для использования программ командной строки профилировщика необходимо добавить путь к программам в переменную среды PATH окна командной строки или в саму команду.

Для сбора подробных сведений о времени из компонента .NET Framework с помощью метода инструментирования используйте программу VSInstr.exe для создания инструментированной версии компонента и программу VSPerfCLREnv.cmd для инициализации переменных среды профилирования. Затем запустите профилировщик.

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

Чтобы завершить сеанс профилирования, закройте целевое приложение и явным образом завершите работу профилировщика. В большинстве случаев рекомендуется сбрасывать переменные среды профилирования в конце сеанса.

Запуск сеанса профилирования

Чтобы начать профилирование с помощью метода инструментирования, выполните следующие действия.

  1. Откройте окно командной строки. Если необходимо, добавьте каталог средств профилировщика в переменную среды PATH. Во время установки этот путь не добавляется.
  2. Используйте программу VSInstr для создания инструментированной версии целевого приложения.
  3. Инициализируйте переменные среды профилирования .NET Framework. Тип: VSPerfClrEnv /traceon
  4. Запуск профилировщика. Тип: VSPerfCmd /start:trace /output: OutputFile [ Options ]
    • Параметр /start:trace инициализирует профилировщик.
    • Параметр /output: OutputFile является обязательным для параметра /start. OutputFile указывает имя и расположение файла данных профилирования (VSP-файла). С параметром /start:trace можно использовать любой из следующих параметров.
    • ПараметрОписание
      /user:[ Domain ] UserName Указывает домен и имя пользователя учетной записи, которая является владельцем профилируемого процесса. Этот параметр является обязательным только в том случае, если процесс выполняется в качестве пользователя, отличного от пользователя, вошедшего в систему. Владелец процесса указан в столбце Имя пользователя на вкладке Процессы диспетчера задач Windows.
      /crossession Включает профилирование процессов в других сеансах. Этот параметр является обязательным, если приложение ASP.NET выполняется в другом сеансе. Идентификатор сеанса указан в столбце Идентификатор сеанса на вкладке Процессы в диспетчере задач Windows. /CS можно указать как краткую версию /crosssession.
      /globaloff Запускает профилировщик в состоянии приостановки сбора данных. Используйте параметр /globalon для возобновления профилирования.
      /counter: Config Собирает данные от счетчика производительности процессора, указанного в Config . Сведения о счетчике добавляются в данные, собранные для каждого события профилирования.
      /wincounter: WinCounterPath Задает счетчик производительности Windows, данные которого будут собираться во время профилирования.
      /automark: Interval Используется с только с параметром /wincounter. Указывает время (в миллисекундах) между событиями сбора счетчика производительности Windows. Значение по умолчанию — 500 мс.
      /events: Config Задает события трассировки событий для Windows (ETW), собираемые во время профилирования. События трассировки событий Windows собираются в отдельный ETL-файл.
    • Запустите целевое приложение из окна командной строки.
    Читайте также:
    Как настроить программу obs studio

    Управление сбором данных

    Пока целевое приложение выполняется, вы можете управлять сбором данных путем запуска и остановки записи данных в файл данных профилировщика, используя параметры VSPerfCmd.exe. Управление сбором данных позволяет собирать данные на конкретных этапах выполнения программы, например при запуске или завершении работы приложения.

    Чтобы запустить и остановить сбор данных, выполните приведенные ниже действия.

    • Следующие пары параметров запускают и останавливают сбор данных. Каждый параметр необходимо указывать в отдельной командной строке. Сбор данных можно включать и отключать несколько раз.
      ПараметрОписание
      /globalon /globaloff Запускает (/globalon) или останавливает (/globaloff) сбор данных для всех процессов.
      /processon: PID /processoff: PID Запускает ( /processon) или останавливает ( /processoff) сбор данных для процесса с указанным идентификатором процесса ( PID ).
      /threadon: TID /threadoff: TID Запускает ( /threadon) или останавливает ( /threadoff) сбор данных для потока с указанным идентификатором потока ( TID ).

    Завершение сеанса профилирования

    Чтобы завершить сеанс профилирования, закройте приложение, в котором выполняется инструментируемый компонент. Вызовите команду VSPerfCmd/shutdown, чтобы завершить работу профилировщика и закрыть файл данных профилирования. Команда VSPerfClrEnv /off сбрасывает переменные среды профилирования.

    Чтобы завершить сеанс профилирования, выполните приведенные далее действия.

    1. Закройте целевое приложение.
    2. Завершите работу профилировщика. Тип: VSPerfCmd /shutdown
    3. (Необязательно) Сбросьте переменные среды профилирования. Тип: VSPerfClrEnv /off

    Источник: learn.microsoft.com

    Как проверить скорость работы функций в Visual Studio

    Я хотел бы проверить, насколько быстро работают мои проекты. Было бы замечательно, если бы была возможность отмечать медленные места моей функции, поэтому я могу изменить свой код, чтобы повысить производительность. Я использую Microsoft Visual Studio 2012, и я знаю, что есть встроенный инструмент тестирования, но я не знаю, где его найти и, вероятно, как его использовать. Было бы здорово, если бы кто-то помог мне с этой проблемой.

    Читайте также:
    Определите количество чисел k для которых следующая программа выведет

    Kalvis 16 март 2014, в 16:30
    Поделиться
    Поделиться:
    performance
    visual-studio-2012

    4 ответа

    Лучший ответ

    Чтобы проверить время выполнения метода, вы можете использовать «Секундомер» . Также есть встроенный профилировщик VS 2013 в меню ANALYZE = > Profiler. Я не помню, в какой версии VS он был добавлен, но я думаю, что он существует в VS 2012. Таким образом, вы можете начать профилирование, использовать свое приложение на некоторое время, а затем проверить, какие операции потребовалось больше времени для excecute. UPDATE: VS 2017 теперь показывает время выполнения в миллисекундах для каждой строки или когда Run To Click используется во время сеанса отладки.

    Andrii Litvinov 16 март 2014, в 15:38
    Поделиться

    VS 2017 now shows execution time in milliseconds for each line где это? Я запускал профайлеры Sampling и Instrumentation и не вижу этого.

    Douglas Gaskell 02 март 2018, в 04:04
    Andrii Litvinov 02 март 2018, в 07:57

    В Visual Studio 2013 — Перейти к ANALYZE → Производительность и диагностика. Проверьте мастер производительности, чтобы вычислить требуемое время. Нажмите «Пуск». Теперь выберите — Инструментарий для измерения вызовов функций и подсчета. Нажмите «Далее.

    Select — Будет показан один или несколько доступных проектов в этом названии вашего проекта. Нажмите» Далее. Снова нажмите «Далее». Проверка. Запустите профилирование после завершения мастера.

    Теперь нажмите кнопку «Готово».

    Источник: overcoder.net

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru