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


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

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

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

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

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

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

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

Присоединение профилировщика

Присоединение профилировщика к веб-приложению ASP.NET

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

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

    VSPerfClrEnv {/globalsamplegc | /globalsamplegclife} [/samplelineoff]

    • Параметры /globalsamplegc и /globalsamplegclife задают тип памяти для сбора данных.

      Задайте один и только один из следующих объектов.

      Параметр

      Описание

      /globalsamplegc

      Включает сбор данных о выделении памяти.

      /globalsamplegclife

      Включает сбор данных о выделении памяти и времени существования объекта.

    • Параметр /samplelineoff отключает связывание собранных данных с определенными строками исходного кода.Если задан этот параметр данные назначаются на уровне функции.

  3. Перезагрузите компьютер, чтобы задать новую конфигурацию среды.

  4. Откройте окно командной строки.При необходимости задайте переменные среды для пути к профилировщику.

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

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

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

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

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

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

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

    Параметр

    Описание

    /user:[Domain\]UserName

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

    /crosssession

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

    /waitstart [:Interval]

    Задает (в секундах) интервал ожидания инициализации профилировщика до возвращения ошибки.Если значение Interval не указано, профилировщик ожидает в течение неограниченного периода.По умолчанию немедленно возвращается параметр /start.

    /wincounter:WinCounterPath

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

    /automark:Interval

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

    /events:Config

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

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

  7. Присоедините профилировщик к рабочему процессу ASP.NET.Type:

    VSPerfCmd /attach:{PID|ProcName} [/targetclr**:**Version]

    • Идентификатор процесса (PID) задает идентификатор процесса или имя рабочего процесса ASP.NET.Диспетчер задач Windows позволяет просмотреть идентификаторы всех запущенных процессов.

    • **/targetclr:**Version задает версию среды CLR для профилирования, если в приложении загружено несколько версий среды выполнения.

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

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

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

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

    Параметр

    Описание

    /globalon /globaloff

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

    /processon:PID/processoff:PID

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

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

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

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

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

При завершении сеанса профилирования следует отсоединить профилировщик от веб-приложения.Чтобы остановить сбор данных в приложении, для которого выполняется профилирование методом выборки, можно остановить сбор данных, перезапустив рабочий процесс ASP.NET, или вызвав параметр VSPerfCmd /detach.Затем, чтобы завершить работу профилировщика и закрыть файл данных профилирования, вызовите команду VSPerfCmd /shutdown.Команда VSPerfClrEnv /globaloff удаляет переменные среды, используемые для профилирования, но конфигурация системы не изменяется до перезагрузки компьютера.

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

  1. Чтобы отсоединить профилировщик от целевого приложения, выполните одно из следующих действий.

    • Введите VSPerfCmd /detach

      -или-

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

    IISReset /stop

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

    VSPerfCmd /shutdown

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

    VSPerfCmd /globaloff

  4. Перезагрузите компьютер.Если требуется, перезапустите службы IIS.Type:

    IISReset /start

См. также

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

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

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

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