Профилирование среды выполнения

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

Отслеживание производительности с использованием системного монитора (Perfmon.exe)

Системный монитор (или, как он называется в Windows Vista и Windows 7, монитор надежности и производительности) – простейшее средство для профилирования приложений .NET Framework. Системный монитор содержит графическое представление данных счетчиков производительности платформы .NET Framework, установленных вместе со средой CLR Пакет средств разработки программного обеспечения (SDK) для Windows. Эти счетчики могут использоваться для контроля всех параметров, начиная от управления памятью и заканчивая производительностью JIT-компилятора. Они сообщают об используемых приложением ресурсах, которые являются косвенным показателем производительности. Используйте эти счетчики, чтобы понять, как приложение работает внутри.

Запуск PerfMon.exe в Windows XP

  1. В командной строке введите perfmon. Появится системный монитор.

  2. В панели инструментов щелкните значок Добавить (знак "плюс"), если он присутствует. Если этот значок не отображается, щелкните правой кнопкой мыши в окне монитора и выберите команду Добавить счетчики.

    При этом откроется окно Добавить счетчики, в котором отображаются доступные объекты и счетчики производительности. Для приложений .NET имеется ряд предварительно определенных объектов, в том числе объекты для управления памятью (Память CLR .NET), взаимодействия (Взаимодействие CLR .NET), обработки исключений ( Исключения CLR .NET) и многопоточности (Блокировки и потоки CLR .NET). Каждый объект производительности .NET Framework включает ряд отдельных счетчиков производительности.

  3. В списке Объект производительности выберите объект производительности, который планируется просмотреть.

  4. В списке счетчиков выберите счетчик производительности, который планируется просмотреть.

  5. Выберите Все экземпляры, чтобы указать, что планируется глобальное наблюдение за счетчиком производительности для среды CLR (то есть на уровне системы).

    – или –

    Нажмите Выбор экземпляров из списка и выберите приложение, чтобы наблюдать за счетчиком производительности для данного приложения.

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

Запуск PerfMon.exe в Windows Vista или Windows 7

  1. В командной строке введите perfmon. Откроется консоль Монитор надежности и производительности (в Windows Vista) или консоль Системный монитор (в Windows7).

  2. В папке Средства наблюдения нажмите Монитор производительности.

  3. На панели инструментов "Системный монитор" щелкните значок Добавить (знак "плюс"), если он присутствует. Если этот значок не отображается, щелкните правой кнопкой мыши в окне монитора и выберите команду Добавить счетчики.

    Откроется диалоговое окно Добавление счетчиков. В списке Доступные счетчики отображаются доступные объекты производительности. Для приложений .NET имеется ряд предварительно определенных объектов, в том числе объекты для управления памятью (Память CLR .NET), взаимодействия (Взаимодействие CLR .NET), обработки исключений ( Исключения CLR .NET) и многопоточности (Блокировки и потоки CLR .NET). Каждый объект производительности включает ряд отдельных счетчиков производительности.

  4. Установите флажок рядом с именем объекта производительности, чтобы просмотреть список отдельных счетчиков, которые он поддерживает.

  5. Щелкните необходимый счетчик производительности.

  6. В списке Экземпляры выбранного объекта нажмите <Все экземпляры>, чтобы указать, что планируется глобальное наблюдение за счетчиком производительности для среды CLR (то есть на уровне системы).

    – или –

    В списке Экземпляры выбранного объекта выберите имя приложения, чтобы наблюдать за счетчиком производительности для данного приложения.

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

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

Установив новые счетчики производительности при работающем системном мониторе, остановите системный монитор и перезапустите его, чтобы новые счетчики стали видны.

Если требуется профилировать сборку, существующую в зоне или во внешнем общем доступе, убедитесь, что удаленная сборка является полностью доверенной на компьютере с работающими счетчиками производительности. Если эта сборка не обладает достаточным уровнем доверия, счетчики производительности работать не будут. Сведения о предоставлении доверия различным поясам см. в разделе Caspol.exe (средство настройки политики управления доступом для кода).

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

В системах, на которых установлен .NET Framework 4 монитор производительности могут не отображаться данные для счетчиков производительности в некоторых категориях, таких как Данные .NET CLR и Сети .NET CLR, для приложений, которые были разработаны с помощью .NET Framework 1.1.Если это так, можно настроить монитор производительности для отображения этих данных, добавив элемент <forcePerformanceCounterUniqueSharedMemoryReads>в файле конфигурации приложения.

Считывание данных и создание счетчиков производительности программным способом

.NET Framework предоставляет классы, которые можно использовать для программного доступа к тем же сведениям о производительности, которые доступны в системном мониторе. Эти классы можно также использовать для создания пользовательских счетчиков производительности. В следующей таблице описаны некоторые из классов контроля производительности, предоставляемых .NET Framework.

Класс

Описание

System.Diagnostics.PerformanceCounter

Представляет компонент счетчика производительности Windows NT. Этот класс используется для чтения существующих предварительно определенных или пользовательских счетчиков и публикации (записи) данных производительности в пользовательские счетчики.

System.Diagnostics.PerformanceCounterCategory

Предоставляет ряд методов для взаимодействия со счетчиками и категориями счетчиков на компьютере.

System.Diagnostics.PerformanceCounterInstaller

Задает установщик для компонента PerformanceCounter.

System.Diagnostics.PerformanceCounterType

Задает формулу для вычисления метода NextValue для PerformanceCounter.

См. также

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

Счетчики производительности для ASP.NET

Модель политики безопасности

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

Счетчики производительности в .NET Framework