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


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

В этом разделе описывается использование программ командной строки средств профилирования Visual Studio для сбора подробных данных о времени существования объекта и выделении памяти .NET для динамически скомпилированного веб-приложения ASP.NET с помощью метода профилирования с инструментированием.

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

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

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

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

После завершения работы по профилированию восстановите исходное состояние файла web.config и веб-сервера.

Настройка веб-сервера и веб-приложения ASP.NET

Процедура настройки веб-сервера и веб-приложения ASP.NET

  1. Измените файл web.config целевого приложения.См. раздел Практическое руководство. Изменение файлов Web.Config для инструментирования и профилирования динамически скомпилированных веб-приложений ASP.NET.

  2. Откройте окно командной строки на том компьютере, на котором размещено веб-приложение.

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

    VSPerfClrEnv /globaltracegc

    -или-

    VSPerfClrEnv /globaltracegclife

    • При использовании параметра /globaltracegc включается сбор данных о выделении памяти.

    • При использовании параметра /globaltracegclife включается сбор данных о выделении памяти и времени существования объекта.

  4. Перезагрузите компьютер.

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

Процедура профилирования веб-приложения ASP.NET

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

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

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

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

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

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

    Для приложений ASP.NET параметры /user и /crosssession обычно являются обязательными.

    Параметр

    Описание

    /user:[Domain\]UserName

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

    /crosssession

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

    /globaloff

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

    /counter:Config

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

    /wincounter:WinCounterPath

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

    /automark:Interval

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

    /events:Config

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

  2. Запустите веб-приложение ASP.NET обычным образом.

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

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

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

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

    Параметр

    Описание

    /globalon /globaloff

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

    /processon:PID/processoff:PID

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

    /threadon:TID/threadoff:TID

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

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

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

Для завершения сеанса профилирования закройте целевое веб-приложение ASP.NET, остановите службы IIS, чтобы остановить процесс профилирования, и завершите работу профилировщика.Затем перезапустите службу IIS.

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

  1. Закройте веб-приложение ASP.NET.

  2. Закройте рабочий процесс ASP.NET, сбросив параметры службы IIS.Type:

    IISReset /stop

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

    VSPerfCmd/shutdown

  4. Перезапустите службы IIS.Type:

    IISReset /start

Восстановление приложения и конфигурации компьютера

По завершении всех профилирований замените файл web.config, удалите значения переменных среды, используемых для профилирования, и перезагрузите компьютер для восстановления исходного состояния сервера и приложения ASP.NET.

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

  1. Замените файл web.config копией исходного файла.

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

    VSPerfCmd /globaloff

  3. Перезагрузите компьютер.

См. также

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

Профилирование веб-приложений ASP.NET из командной строки

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

Представления данных в памяти в средствах профилирования .NET