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

Примечание.

Эта статья относится к .NET Framework. Он не применяется к более новым реализациям .NET, включая .NET 6 и более поздние версии.

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

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

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

Запуск Perfmon.exe в Windows Vista и более поздних версиях

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

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

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

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

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

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

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

    –или–

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

    Для различения нескольких версий среды выполнения или устранения неоднозначности между несколькими приложениями с одним и тем же именем необходимо также изменить раздел реестра. Для получения дополнительной информации см. Performance Counters and In-Process Side-By-Side Applications.

Примечание.

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

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

Примечание.

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

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

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

Класс Description
System.Diagnostics.PerformanceCounter Представляет компонент счетчика производительности Windows. Этот класс используется для чтения существующих предварительно определенных или пользовательских счетчиков и публикации (записи) данных производительности в пользовательские счетчики.
System.Diagnostics.PerformanceCounterCategory Предоставляет ряд методов для взаимодействия со счетчиками и категориями счетчиков на компьютере.
System.Diagnostics.PerformanceCounterInstaller Задает установщик для компонента PerformanceCounter .
System.Diagnostics.PerformanceCounterType Задает формулу для вычисления метода NextValue для PerformanceCounter.

См. также