Профилирование среды выполнения
Примечание.
Эта статья относится к .NET Framework. Он не применяется к более новым реализациям .NET, включая .NET 6 и более поздние версии.
Профилирование представляет собой метод сбора данных по производительности в любом сценарии разработки или развертывания. Это раздел представляет интерес для разработчиков и системных администраторов, которые хотят получить сведения о производительности приложения.
Отслеживание производительности с использованием системного монитора (Perfmon.exe)
Монитор производительности — это самый простой инструмент для профилирования приложения платформа .NET Framework. Монитор производительности графически представляет данные, найденные в счетчиках производительности платформа .NET Framework, установленных с средой CLR и пакетом SDK для Windows. Эти счетчики можно использовать для контроля всех параметров, начиная с управления памятью и заканчивая производительностью JIT-компилятора. Они сообщают об используемых приложением ресурсах, которые являются косвенным показателем производительности. Используйте эти счетчики, чтобы понять, как приложение работает внутри.
Запуск Perfmon.exe в Windows Vista и более поздних версиях
В командной строке введите perfmon. Появится консоль системного монитора .
В папке Средства наблюдения нажмите Системный монитор.
На панели инструментов "Системный монитор" щелкните значок Добавить (знак "плюс"), если он присутствует. Если этот значок не отображается, щелкните правой кнопкой мыши в окне монитора и выберите команду Добавить счетчики .
Откроется диалоговое окно Добавить счетчики . В списке Имеющиеся счетчики приводятся доступные объекты производительности. Для приложений .NET Framework имеется ряд предварительно определенных объектов, в том числе объекты для управления памятью (Память CLR .NET), взаимодействия (Взаимодействие CLR .NET), обработки исключений (Исключения CLR .NET) и многопоточности (Блокировки и потоки CLR .NET). Каждый объект производительности включает ряд отдельных счетчиков производительности. Список счетчиков производительности, доступных в системном мониторе, см. в разделе Performance Counters.
Установите флажок рядом с именем объекта производительности, чтобы просмотреть список счетчиков, которые он поддерживает.
Щелкните нужный счетчик производительности.
В поле "Экземпляры выбранного списка объектов" щелкните <"Все экземпляры>", чтобы указать, что необходимо отслеживать счетчик производительности для среды 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 . |