Поделиться через


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

В этом разделе описан порядок использования программ командной строки средств профилирования Visual Studio для запуска собственного автономного (клиентского) приложения и сбора данных параллелизма потока и процесса.

Сеанс профилирования состоит из следующих частей:

  • запуск приложения с профилировщиком;

  • управление сбором данных;

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

ПримечаниеПримечание

Программы командной строки средств профилирования расположены в подкаталоге \Team Tools\Performance Tools каталога установки Visual Studio.На 64-разрядных компьютерах доступны 64-разрядные и 32-разрядные версии средств.Для использования профилировщика из командной строки необходимо добавить путь к этим программам в переменную среды PATH окна Командная строка или указать этот путь при вызове самой команды.Дополнительные сведения см. в разделе Указание пути к программам командной строки средств профилирования.

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

Чтобы запустить целевое приложение с профилировщиком, воспользуйтесь параметрами /start и /launch средства VSPerfCmd.exe для инициализации профилировщика и запуска приложения.Можно также задать /start и /launch и соответствующие им параметры.Для приостановки сбора данных при запуске целевого приложения можно также добавить параметр /globaloff.Далее для начала сбора данных используется параметр /globalon.

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

  1. В командной строке введите следующую команду:

    VSPerfCmd/start:concurrency **/output:**OutputFile [Options]

    Параметр /output**:**OutputFile является обязательным при использовании параметра /start.Параметр OutputFile задает имя и расположение файла с данными профилирования (VSP-файла).

    С параметром /start:concurrency можно использовать любые из параметров, представленных в следующей таблице.

    Параметр

    Описание

    /wincounter:WinCounterPath

    Задает счетчик производительности Windows, данные которого следует собирать в процессе профилирования.

    /automark:Interval

    Используйте только с /wincounter.Задает интервал времени (в миллисекундах) между событиями сбора данных счетчика производительности Windows.Значение по умолчанию — 500.

    /events:Config

    Задает событие трассировки событий Windows, данные которого следует собирать в процессе профилирования.События трассировки событий Windows собираются в отдельный ETL-файл.

  2. Для запуска целевого приложения введите:

    VSPerfCmd /launch**:**AppName [Options]

    С параметром /launch можно использовать любые из параметров, представленных в следующей таблице.

    Параметр

    Описание

    /args:Arguments

    Задает строку, содержащую аргументы командной строки, которые передаются целевому приложению.

    /console

    Запускает целевое приложение командной строки в отдельном окне.

    /targetclr:CLRVersion

    Задает версию среды CLR для профилирования, если в приложении загружено несколько версий среды CLR.

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

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

Запуск и остановка сбора данных

  • Пары параметров в следующей таблице используются для запуска и остановки сбора данных.Задайте каждый параметр в отдельной строке командной строки.Запуск и приостановка сбора данных могут выполняться неоднократно.

    Параметр

    Описание

    /globalon /globaloff

    Запускает (/globalon) или останавливает (/globaloff) сбор данных для всех процессов.

    /processon:PID/processoff:PID

    Запускает (/processon) или останавливает (/processoff) сбор данных для процесса с указанным идентификатором процесса (PID).

    /attach:{PID|ProcName} /detach[:{PID|ProcName}]

    /attach запускает сбор данных для процесса, определяемого по идентификатору (PID) или имени процесса (ProcName)./detach останавливает сбор данных для указанного процесса или, если он не задан, для всех процессов.

  • Для добавления метки профилирования в файл данных можно также использовать параметр VSPerfCmd.exe/mark.Команда /mark добавляет идентификатор, отметку времени и необязательную определенную пользователем текстовую строку.Метки могут использоваться для фильтрации данных в отчетах профилировщика и представлениях данных.

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

При завершении сеанса профилирования профилировщик не должен собирать данные.Чтобы остановить процесс сбора данных параллелизма можно закрыть профилируемое приложение или воспользоваться параметром VSPerfCmd /detach.Затем для завершения работы профилировщика и закрытия файла с данными профилирования используется параметр VSPerfCmd /shutdown.

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

  1. Отсоедините профилировщик от целевого приложения путем закрытия приложения или ввода в командной строке следующей команды:

    VSPerfCmd /detach

  2. Завершите работу профилировщика с помощью следующей команды командной строки:

    VSPerfCmd /shutdown