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

Performance Counters in the .NET Framework

 

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

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

Описание

Число исключений

Отображение общего числа исключений, созданных с момента запуска приложения. Сюда входят как исключения .NET, так и неуправляемые исключения, преобразованные в исключения .NET. Например, исключение HRESULT, возвращенное из неуправляемого кода, преобразуется в исключение в управляемом коде.

Этот счетчик включает обработанные и необработанные исключения. Повторно созданные исключения учитываются снова.

Число исключений/сек

Отображение числа созданных исключений в секунду. Сюда входят как исключения .NET, так и неуправляемые исключения, преобразованные в исключения .NET. Например, исключение HRESULT, возвращенное из неуправляемого кода, преобразуется в исключение в управляемом коде.

Этот счетчик включает обработанные и необработанные исключения. Усреднение по времени не производится; отображается разность значений двух последних выборок, деленная на длительность интервала выборки. Этот счетчик свидетельствует о возможных проблемах с производительностью, если возникает много исключений (>100).

Фильтров/сек

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

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

Окончательных блоков/сек

Отображение числа блоков finally, выполненных в секунду. Выполнение блока finally гарантировано, независимо от результатов выхода из блока try. Учитываются только блоки finally, выполненные для исключения; блоки finally в обычных ветвях кода не учитываются этим счетчиком.

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

Глубина от выдачи до захвата

Отображение числа пройденных кадров стека: от кадра, вызвавшего исключение, до кадра, обработавшего исключение (в секунду). Этот счетчик обнуляется при вводе обработчика исключения, поэтому вложенные исключения показывают глубину стека от обработчика до обработчика.

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

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

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

Описание

Количество CCW

Отображение текущего числа вызываемых оболочек COM (CCW). Вызываемая оболочка COM — это прокси-объект для управляемого объекта, на который ссылается неуправляемый COM-клиент. Этот счетчик показывает число управляемых объектов, на которые ссылается неуправляемый код COM.

Число операций маршаллинга

Отображение общего числа операций маршаллинга аргументов и возвращаемых значений из управляемого в неуправляемый код и обратно с момента запуска приложения. Этот счетчик не увеличивается, если заглушки являются встроенными. (Заглушки отвечают за маршалинг аргументов и возвращаемых значений.) Заглушки обычно встраиваются при небольших размерах затрат на маршалинг.

Число суррогатов

Показывает текущее число заглушек, созданных средой CLR. Заглушки отвечают за маршалинг аргументов и возвращаемых значений из управляемого в неуправляемый код и обратно во время вызовов COM-взаимодействия или платформенных вызовов.

Число экспортов TLB/сек

Зарезервировано для будущего использования.

Число импортов TLB/сек

Зарезервировано для будущего использования.

Категория консоли производительности "Компиляция по требованию (JIT) CLR .NET" включает счетчики производительности, предоставляющие данные о коде, откомпилированном по требованию. Эти счетчики производительности представлены в следующей таблице.

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

Описание

Откомпилированных байтов IL по требованию

Отображение общего числа байтов MSIL, скомпилированных JIT-компилятором с момента запуска приложения. Этот счетчик эквивалентен счетчику Всего откомпилированных байтов IL по требованию.

Динамически скомпилированных методов

Отображение общего числа методов, откомпилированных JIT-компилятором с момента запуска приложения. Этот счетчик не включает предварительно откомпилированные методы.

% времени на компиляцию по требованию

Отображение времени, затраченного на JIT-компиляцию с момента последней фазы JIT-компиляции (в процентах). Этот счетчик обновляется в конце каждой фазы JIT-компиляции. Фаза JIT-компиляции возникает, когда компилируется метод и его зависимости.

Откомпилированных байтов IL по требованию/сек

Отображение числа байтов MSIL, откомпилированных JIT-компилятором в секунду. Усреднение по времени не производится; отображается разность значений двух последних выборок, деленная на длительность интервала выборки.

Уровень сбоев при компиляции по требованию

Отображение пикового числа методов, которые JIT-компилятору не удалось скомпилировать с момента запуска приложения. Этот сбой может возникать из-за сбоя проверки MSIL-кода или внутренней ошибки в JIT-компиляторе.

Всего откомпилированных байтов IL по требованию

Отображение общего числа байтов MSIL, откомпилированных JIT-компилятором с момента запуска приложения. Этот счетчик эквивалентен счетчику Откомпилированных байтов IL по требованию.

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

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

Описание

% времени на загрузку

Зарезервировано для будущего использования.

Длительность поиска сборки

Зарезервировано для будущего использования.

Байт в куче загрузчика

Отображение текущего размера памяти (в байтах), выделенной загрузчиком классов для всех доменов приложений. Выделенная память — это физическое пространство, зарезервированное в файле подкачки на диске.

Текущих доменов приложений

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

Текущее число сборок

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

Загружено классов на текущий момент

Отображение текущего числа классов, загруженных во всех сборках.

Частота загрузок доменов приложений

Отображение числа доменов приложений, загруженных в секунду. Усреднение по времени не производится; отображается разность значений двух последних выборок, деленная на длительность интервала выборки.

Частота выгрузок доменов приложений

Отображение числа доменов приложений, выгруженных в секунду. Усреднение по времени не производится; отображается разность значений двух последних выборок, деленная на длительность интервала выборки.

Частота загрузок сборок

Отображение числа сборок, загруженных во всех доменах приложений (в секунду). Если сборка загружается как нейтральная к домену из нескольких доменов приложений, этот счетчик увеличивается только один раз.

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

Частота загрузок классов

Отображение текущего числа классов, загруженных во всех сборках (в секунду). Усреднение по времени не производится; отображается разность значений двух последних выборок, деленная на длительность интервала выборки.

Частота сбоев при загрузке

Отображение числа классов, при загрузке которых произошел сбой (в секунду). Усреднение по времени не производится; отображается разность значений двух последних выборок, деленная на длительность интервала выборки.

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

Всего сбоев при загрузке

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

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

Всего доменов приложений

Отображение пикового числа доменов приложений, загруженных с момента запуска приложения.

Всего выгружено доменов приложений

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

Общее число сборок

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

Всего загружено классов

Отображение совокупного числа классов, загруженных во всех сборках с момента запуска приложения.

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

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

Описание

Текущих логических потоков

Отображение числа текущих управляемых объектов потока в приложении. Этот счетчик учитывает как работающие, так и остановленные потоки. Усреднение по времени не производится; отображается только последнее значение.

Текущих физических потоков

Отображение числа основных потоков операционной системы, создаваемых средой CLR и принадлежащих ей, которые выступают в качестве базовых потоков для управляемых объектов потока. Значение этого счетчика не включает потоки, используемые средой выполнения для своих внутренних операций; это подмножество потоков процесса операционной системы.

Текущих опознанных потоков

Отображение числа потоков, которые на данный момент опознаны средой выполнения. Эти потоки связаны с соответствующим управляемым объектом потока. Среда выполнения не создает эти потоки, но они выполнялись в среде выполнения по крайней мере один раз.

Отслеживаются только уникальные потоки; потоки с одинаковым идентификатором потока, повторно входящие в среду выполнения или повторно создаваемые после выхода потока, не учитываются второй раз.

Всего опознано потоков

Отображение общего числа потоков, опознанных средой выполнения с момента запуска приложения. Эти потоки связаны с соответствующим управляемым объектом потока. Среда выполнения не создает эти потоки, но они выполнялись в среде выполнения по крайней мере один раз.

Отслеживаются только уникальные потоки; потоки с одинаковым идентификатором потока, повторно входящие в среду выполнения или повторно создаваемые после выхода потока, не учитываются второй раз.

Частота конфликтов/сек

Отображение частоты, с которой потоки в среде выполнения выполняют неудачные попытки получения управляемой блокировки.

Текущая длина очереди

Отображение общего числа потоков, ожидающих получения управляемой блокировки в приложении. Усреднение по времени не производится; отображается последнее значение.

Длина очереди/сек

Отображение числа потоков (в секунду), ожидающих получения управляемой блокировки в приложении. Усреднение по времени не производится; отображается разность значений двух последних выборок, деленная на длительность интервала выборки.

Пиковая длина очереди

Отображение общего числа потоков, ожидающих получения управляемой блокировки с момента запуска приложения.

Частота опознавания потоков/сек

Отображение числа потоков (в секунду), которые опознаны средой выполнения. Эти потоки связаны с соответствующим управляемым объектом потока. Среда выполнения не создает эти потоки, но они выполнялись в среде выполнения по крайней мере один раз.

Отслеживаются только уникальные потоки; потоки с одинаковым идентификатором потока, повторно входящие в среду выполнения или повторно создаваемые после выхода потока, не учитываются второй раз.

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

Всего конфликтов

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

Категория консоли производительности "Память CLR .NET" включает счетчики, предоставляющие данные о сборщике мусора. Эти счетчики производительности представлены в следующей таблице.

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

Описание

Байт во всех кучах

Показывает сумму значений счетчиков Размер кучи поколения 1, Размер кучи поколения 2 и Размер кучи для массивных объектов. Этот счетчик показывает текущий объем памяти, выделенной в байтах для куч сборки мусора.

Указателей GC

Отображение текущего числа используемых указателей сборки мусора. Указатели сборки мусора — это указатели на ресурсы, внешние для среды CLR и управляемой среды.

Сборов мусора для поколения 0

Отображение числа раз, когда объекты поколения 0 (то есть самые младшие, последние распределенные объекты) удалялись сборщиком мусора с момента запуска приложения.

Сборка мусора поколения 0 происходит, когда объем доступной памяти для поколения 0 недостаточен для удовлетворения запроса на выделение памяти. Этот счетчик увеличивается в конце сборки мусора поколения 0. Сборки мусора последующего поколения включают сборки всех предыдущих поколений. Значение этого счетчика явно увеличивается при выполнении сборки мусора для последующих поколений (поколение 1 или 2).

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

Сборов мусора для поколения 1

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

Этот счетчик увеличивается в конце сборки мусора поколения 1. Сборки мусора последующего поколения включают сборки всех предыдущих поколений. Значение этого счетчика явно увеличивается при выполнении сборки мусора для последующего поколения (поколение 2).

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

Сборов мусора для поколения 2

Отображение числа раз, когда объекты поколения 2 удалялись сборщиком мусора с момента запуска приложения. Этот счетчик увеличивается в конце сборки мусора поколения 2 (иначе называемой полной сборкой мусора).

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

Принудительных GC

Отображение пикового числа выполнений сборки мусора из-за явного вызова GC.Collect. Рекомендуется предоставить сборщику мусора разрешение на настройку периодичности сборок.

Закрепленных объектов

Отображение числа закрепленных объектов, обнаруженных в ходе последней сборки мусора. Закрепленные объекты — это объекты, которые сборщик мусора не может перемещать в памяти. Этот счетчик отслеживает закрепленные объекты только в кучах, используемых для сборки мусора. Например, сборка мусора поколения 0 вызывает перечисление закрепленных объектов только в куче поколения 0.

Используется блоков синхронизации

Показывает текущее число используемых блоков синхронизации. Блоки синхронизации — это структуры данных, выделяемые для каждого объекта для хранения сведений о синхронизации. Блоки синхронизации хранят слабые ссылки на управляемые объекты и должны просматриваться сборщиком мусора. В блоках синхронизации можно хранить не только сведения о синхронизации, но и метаданные COM-взаимодействия. Этот счетчик указывает на проблемы, связанные с интенсивным использованием примитивов синхронизации.

Всего фиксировано байт

Отображение объема виртуальной памяти (в байтах), в данный момент выделенной сборщиком мусора. Выделенная память — это физическая память, для которой зарезервировано пространство в файле подкачки на диске.

Всего зарезервировано байт

Отображает размер виртуальной памяти в байтах, в данный момент зарезервированной сборщиком мусора. Зарезервированная память — это виртуальная память, зарезервированная для приложения, при том что страницы основной памяти и дисковое пространство не использовались.

% времени в GC

Отображение времени, потраченного на выполнение сборки мусора с момента последнего цикла сборки мусора (в процентах). Этот счетчик обычно описывает работу по сбору и уплотнению памяти, выполняемую сборщиком мусора по поручению приложения. Этот счетчик обновляется только в конце каждой сборки мусора. Усреднение не производится; отображается последнее значение.

Выделено байт/сек

Отображение числа байтов (в секунду), выделенных для кучи сборщика мусора. Этот счетчик обновляется в конце каждой сборки мусора, не при каждом выделении памяти. Усреднение по времени не производится; отображается разность значений двух последних выборок, деленная на длительность интервала выборки.

Объектов, оставшихся после сборки мусора

Отображение числа объектов, обработанных сборкой мусора, которые не были удалены, так как они ожидают финализации. Если эти объекты содержат ссылки на другие объекты, эти объекты также сохранятся, но не учитываются данным счетчиком. Счетчик Ожидающая выполнения операции Finalize память, наследуемая из поколения 0 представляет всю память, сохранившуюся из-за финализации.

Это счетчик без накопления; он обновляется в конце каждой сборки мусора, указывая число оставшихся объектов только во время этой конкретной сборки. Этот счетчик показывает дополнительные затраты приложения, которые могут возникнуть из-за финализации.

Размер кучи поколения 0

Отображение максимального числа байтов, которые могут быть выделены в поколении 0; текущее число байтов, выделенных в поколении 0, не указывается.

Сборка мусора поколения 0 выполняется, когда объем выделенной памяти с момента последней сборки превышает это значение. Размер поколения 0 настраивается сборщиком мусора и может изменяться во время выполнения приложения. В конце сборки поколения 0 размер кучи поколения 0 составляет 0 байт. Этот счетчик показывает размер (в байтах) выделений памяти, вызывающих следующую сборку мусора поколения 0.

Этот счетчик обновляется в конце сборки мусора, не при каждом выделении памяти.

Наследуемых из поколения 0 байт/сек

Отображение числа байт (в секунду), которые были переданы из поколения 0 в поколение 1. Уровень памяти повышается, если она остается после сборки мусора. Этот счетчик является индикатором относительно долгоживущих объектов, создаваемых в секунду.

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

Размер кучи поколения 1

Отображение текущего числа байтов в поколении 1; этот счетчик не показывает максимальный размер поколения 1. Объекты не выделяются непосредственно в это поколение; они передаются из сборок мусора предыдущего поколения 0. Этот счетчик обновляется в конце сборки мусора, не при каждом выделении памяти.

Наследуемых из поколения 1 байт/сек

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

Уровень памяти повышается, если она остается после сборки мусора. Никакие объекты не переходят из поколения 2, так как это самое старшее поколение. Этот счетчик является индикатором самых долгоживущих объектов, создаваемых в секунду.

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

Размер кучи поколения 2

Отображение текущего числа байтов в поколении 2. Объекты не выделяются непосредственно в этом поколении; они передаются из поколения 1 в ходе предыдущих сборок мусора поколения 1. Этот счетчик обновляется в конце сборки мусора, не при каждом выделении памяти.

Размер кучи для массивных объектов

Отображение текущего размера (в байтах) кучи для массивных объектов. Объекты размером более 85 000 байт рассматриваются сборщиком мусора как большие объекты и распределяются в специальную кучу. Они не переходят из поколения в поколение. Этот счетчик обновляется в конце сборки мусора, не при каждом выделении памяти.

Идентификатор процесса

Отображает идентификатор процесса отслеживаемого процесса среды CLR.

Ожидающая выполнения операции Finalize память, наследуемая из поколения 0

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

Память, унаследованная из поколения 0

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

Память, унаследованная из поколения 1

Отображение числа байт памяти, которые остались после сборки мусора и были переданы из поколения 1 в поколение 2. Этот счетчик не учитывает объекты, уровень которых повышен только потому, что они ожидают финализации. Это счетчик без накопления; он отображает значение, наблюдаемое в конце последней сборки мусора. Этот счетчик обнуляется, если последняя сборка мусора была сборкой только поколения 0.

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

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

Описание

Получено байт

Совокупное общее число байтов, полученных всеми объектами Socket в AppDomain с момента запуска процесса. Это число включает данные и любые сведения о протоколе, не заданные TCP/IP.

Отправлено байт

Совокупное общее число байтов, отправленных всеми объектами Socket в AppDomain с момента запуска процесса. Это число включает данные и любые сведения о протоколе, не заданные TCP/IP.

Установлено соединений

Совокупное общее число объектов Socket для сокетов потока, к которым когда-либо выполнялось подключение в AppDomain с момента запуска процесса.

Получено датаграмм

Совокупное общее число пакетов датаграмм, полученных всеми объектами Socket в AppDomain с момента запуска процесса.

Отправлено датаграмм

Совокупное общее число пакетов датаграмм, отправленных всеми объектами Socket в AppDomain с момента запуска процесса.

Среднее время существования HttpWebRequest

Среднее время выполнения для всех объектов HttpWebRequest, завершившихся за последний интервал в AppDomain с момента запуска процесса.

Среднее время HttpWebRequest в очереди

Среднее время в очереди для всех объектов HttpWebRequest, покинувших очередь за последний интервал в AppDomain с момента запуска процесса.

Создано запросов HttpWebRequest/сек

Число объектов HttpWebRequest, созданных в AppDomain (в секунду).

Помещено запросов HttpWebRequest в очередь/сек

Число объектов HttpWebRequest, которые были добавлены в очередь в AppDomain (в секунду).

Прервано запросов HttpWebRequest/сек

Число объектов HttpWebRequest, в которых приложение вызывало метод Abort в AppDomain (в секунду).

Сбоев запросов HttpWebRequest/сек

Число объектов HttpWebRequest, которым назначен код состояния сбоя от сервера в AppDomain (в секунду).

Поддерживается несколько классов счетчиков производительности сети:

  • счетчики событий, измеряющие число возникновений определенного события;

  • счетчики данных, измеряющие количество отправленных или полученных данных;

  • счетчики длительности, измеряющие время выполнения различных процессов (число раз измеряется для объектов в каждом интервале (обычно в секундах) после их выхода из различных состояний);

  • счетчики за интервал, измеряющие число объектов, осуществляющих определенный переход за интервал времени (обычно в секунду).

Счетчики производительности сети для событий включают следующие:

  • Установлено соединений

  • Получено датаграмм

  • Отправлено датаграмм

Эти счетчики производительности обеспечивают подсчет с момента запуска процесса. Число подключений Socket включает явный вызов метода Socket приложением для установленного подключения сокета потока, а также внутренние вызовы класса Socket, выполненные другими классами (например, HttpWebRequest, FtpWebRequest, WebClient и TcpClient).

Число полученных датаграмм и отправленных датаграмм включает пакеты датаграмм, отправленные или полученные путем явных вызовов метода Socket приложением, а также внутренних вызовов класса Socket, выполненных другими классами (например, UdpClient). . Число полученных датаграмм и отправленных датаграмм также может использоваться для весьма приблизительного подсчета числа байтов, отправленных или полученных с помощью датаграмм, на основе предположительного среднего размера датаграммы.

Счетчики производительности сети для данных включают следующие:

  • Получено байт

  • Отправлено байт

Эти счетчики обеспечивают подсчет числа байтов с момента запуска процесса.

Предусмотрено два счетчика длительности, измеряющие время, которое потребовалось объектам HttpWebRequest для прохождения всего жизненного цикла или его части:

  • Среднее время существования HttpWebRequest

  • Среднее время HttpWebRequest в очереди

Для счетчика Среднее время существования HttpWebRequest время существования большинства объектов HttpWebRequest всегда начинается со времени создания объекта и заканчивается временем закрытия ответного потока приложением. Существует два редких сценария:

  • если приложение никогда не вызывает методы GetResponse или BeginGetResponse, время существования объектов HttpWebRequest не учитывается;

  • если объект HttpWebRequest создает исключение WebException при вызове методов GetResponse или EndGetResponse, время существования заканчивается, когда возникает исключение. Технически основной ответный поток также закрывается в этот момент (ответный поток, возвращенный пользователю, фактически является потоком памяти, содержащим копию ответного потока).

Существует четыре счетчика, которые отслеживают определенные аспекты объектов HttpWebRequest в каждом интервале. Эти счетчики производительности могут помочь разработчикам приложений, администраторам и специалистам службы поддержки лучше понять, какие именно действия выполняют объекты HttpWebRequest. Они включают следующие:

  • Создано запросов HttpWebRequest/сек

  • Помещено запросов HttpWebRequest в очередь/сек

  • Прервано запросов HttpWebRequest/сек

  • Сбоев запросов HttpWebRequest/сек

Для счетчика Прервано запросов HttpWebRequest/сек внутренние вызовы Abort также учитываются. Причиной этих внутренних вызовов обычно является время ожидания, которое приложению может потребоваться измерить.

Счетчик Сбоев запросов HttpWebRequests/сек содержит число объектов HttpWebRequest, которым назначен код состояния сбоя от сервера (в секунду). Это означает, что код состояния, полученный от HTTP-сервера в конце запроса, не был в диапазоне от 200 до 299. Коды состояния, которые обрабатываются и приводят к новому запросу (например, многие коды состояния 401 "Несанкционированный доступ"), будут завершаться ошибкой или выполняться успешно в зависимости от результата повторной попытки. Если в приложении возникает ошибка, связанная с повторной попыткой, этот счетчик увеличивается.

Доступ к счетчикам производительности сети и управление ими осуществляется с помощью PerformanceCounter и связанных классов в пространстве имен System.Diagnostics. Счетчики производительности сети также можно просматривать в консоли системного монитора Windows.

Счетчики производительности сети необходимо включить для использования в файле конфигурации. Все счетчики производительности сети включаются и отключаются с помощью одного параметра в файле конфигурации. Включить или отключить отдельные счетчики производительности сети невозможно. Дополнительные сведения см. в разделе Элемент <performanceCounter> (параметры сети).

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

Счетчики производительности сгруппированы в категории. Приложение может перечислить все категории с помощью следующего примера кода:

PerformanceCounterCategory[] Array = PerformanceCounterCategory.GetCategories();
for (int i = 0; i < Array.Length; i++)
{
    Console.Out.WriteLine("{0}. Name={1} Help={2}", i, Array[i].CategoryName, Array[i].CategoryHelp);
}

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

  • "Организация сети CLR .NET" — исходные счетчики производительности, представленные в .NET Framework 2 и поддерживаемые в .NET Framework 2 и более поздних версий;

  • "Организация сети CLR .NET 4.0.0.0" — все вышеперечисленные счетчики сокетов, а также новые счетчики производительности, поддерживаемые в .NET Framework 4 и более поздних версий. Эти новые счетчики предоставляют сведения о производительности для объектов HttpWebRequest.

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

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

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

Описание

Проверок во время компоновки

Отображение общего числа проверок безопасности доступа кода во время компоновки с момента запуска приложения. Проверки безопасности доступа кода во время компоновки выполняются, если вызывающему объекту требуется конкретное разрешение во время JIT-компиляции. Проверка во время компоновки выполняется один раз для каждого вызывающего объекта. Этот счетчик не указывает на серьезные проблемы производительности; он просто является индикатором активности системы безопасности.

% времени на проверки при выполнении

Отображение времени (в процентах), затраченного на выполнение проверок безопасности доступа кода во время выполнения с момента последней выборки. Этот счетчик обновляется в конце проверки безопасности .NET Framework. Усреднение не производится; счетчик представляет последнее значение.

% проверки подлинности по временным сигналам

Зарезервировано для будущего использования.

Глубина прохода стека

Отображение глубины стека при последней проверке безопасности доступа кода во время выполнения. Проверки безопасности доступа кода во время выполнения выполняются путем прохода по стеку. Усреднение по времени не производится; отображается только последнее значение.

Всего проверок при выполнении

Отображение общего числа проверок безопасности доступа кода во время выполнения с момента запуска приложения. Проверки безопасности доступа кода во время выполнения выполняются, если вызывающему объекту требуется конкретное разрешение. Проверка во время выполнения выполняется при каждом вызове вызывающим объектом и проверяет стек текущего потока вызывающего объекта. При использовании со счетчиком Глубина прохода стека этот счетчик показывает снижение производительности в результате проверок безопасности.

Показ: