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


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

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

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

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

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

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

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

Начало профилирования

Инструментирование веб-компонента ASP.NET и запуск профилирования

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

  2. Откройте окно командной строки.

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

    VSPerfClrEnv /globaltracegc

    -или-

    VSPerfClrEnv /globaltracegclife

    • /globaltracegc собирает данные об использовании времени и выделении памяти .NET.

    • /globaltracegclife собирает данные о выделении памяти .NET, времени существования объектов, а также подробные сведения об использовании времени.

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

  5. Откройте окно командной строки.

  6. Запустите профилировщик.В окне командной строки введите:

    **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.

    /wincounter:WinCounterPath

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

    /automark:Interval

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

    /events:Config

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

    /globaloff

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

  7. Откройте веб-сайт, содержащий инструментированный компонент.

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

Пока выполняется целевое приложение, можно управлять сбором данных путем запуска и остановки записи данных в файл с помощью параметров 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, а затем воспользуйтесь командой IISReset служб IIS, чтобы закрыть рабочий процесс ASP.NET.Чтобы завершить работу профилировщика и закрыть файл данных, вызовите команду VSPerfCmd /shutdown.Команда VSPerfClrEnv /globaloff удаляет переменные среды, используемые для профилирования.Для вступления в силу новых параметров среды необходимо перезагрузить компьютер.

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

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

  2. Закройте рабочий процесс ASP.NET.Type:

    IISReset /stop

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

    VSPerfCmd/shutdown

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

    VSPerfCmd /globaloff

  5. Перезагрузите компьютер.При необходимости перезапустите службы IIS.Type:

    IISReset /start

См. также

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

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

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

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