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


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

Замечание

Эта статья связана с .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, в том числе для управления памятью (.NET CLR Memory), взаимодействия (.NET CLR Interop), обработки исключений (исключения .NET CLR) и многопоточности (.NET CLR LocksAndThreads). Каждый объект производительности включает ряд отдельных счетчиков производительности. Список счетчиков производительности, доступных в мониторе производительности, см. в разделе "Счетчики производительности".

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

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

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

    -или-

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

    Чтобы различать несколько версий среды выполнения или различать несколько приложений с одинаковым именем, необходимо также изменить раздел реестра. Дополнительные сведения см. в разделе счетчики производительности и приложения на стороне In-Process-By-Side.

Замечание

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

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

Замечание

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

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

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

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

См. также