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


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

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

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

Функции усиленной безопасности в Windows 8 и Windows Server 2012 требуют значительных изменений в том, как профилировщик Visual Studio выполняет сбор данных на этих платформах.Приложения Магазина Windows также требуют новых методов коллекции.Дополнительные сведения см. в разделе Профилирование приложений для Windows 8 и Windows Server 2012.

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

Добавление данных об уровневом взаимодействии в ходе выполнения требует определенных процедур с средствами профилирования командной строки.Дополнительные сведения см. в разделе Добавление данных взаимодействия уровней из командной строки.

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

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

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

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

Процедура запуска профилирования с помощью метода инструментирования

  1. Откройте окно командной строки.При необходимости добавьте каталог средств профилирования в переменную среды PATH.Этот путь не добавляется при установке.

  2. Для создания инструментированной версии целевого приложения воспользуйтесь программой VSInstr.

  3. Инициализируйте переменные среды, используемые для профилирования .NET Framework.Type:

    VSPerfClrEnv /traceon

  4. Запустите профилировщик.Type:

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

    • Параметр /start:trace обеспечивает инициализацию профилировщика.

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

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

    Параметр

    Описание

    /user:[Domain\]UserName

    Задает домен и имя пользователя учетной записи, которая является владельцем профилируемого процесса.Этот параметр является обязательным только в том случае, если процесс выполняется от имени пользователя, отличного от пользователя, который выполнил вход в систему.Имя владельца процесса отображается в столбце "Имя пользователя" на вкладке "Процессы" диспетчера задач Windows.

    /crosssession

    Включает профилирование процессов в других сеансах.Этот параметр является обязательным, если приложение ASP.NET выполняется в рамках другого сеанса.Идентификатор сеанса отображается в столбце "Код сеанса" на вкладке "Процессы" диспетчера задач Windows.Для /crosssession может быть задано сокращение /CS.

    /globaloff

    Запускает профилировщик с приостановленным сбором данных.Для возобновления профилирования используйте параметр /globalon.

    /counter:Config

    Собирает данные счетчика производительности процессора, заданного параметром Config.Показатели счетчиков добавляются к данным, собранным для каждого события профилирования.

    /wincounter:WinCounterPath

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

    /automark:Interval

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

    /events:Config

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

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

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

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

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

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

    Параметр

    Описание

    /globalon /globaloff

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

    /processon:PID/processoff:PID

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

    /threadon:TID/threadoff:TID

    Запускает (/threadon) или останавливает (/threadoff) сбор данных для потока с указанным идентификатором потока (TID).

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

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

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

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

  1. Закройте целевое приложение.

  2. Завершите работу профилировщика.Type:

    VSPerfCmd /shutdown

  3. (Необязательно.) Удалите переменные среды, используемые для профилирования.Type:

    VSPerfClrEnv /off

См. также

Основные понятия

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

Другие ресурсы

Представление данных метода инструментирования профилировщика