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


Правила производительности по идентификаторам

Предупреждение

Описание

DA0001. Использование StringBuilder для объединений

Вызовы System.String.Concat составляют значительную часть данных профилирования.Для построения строк из нескольких сегментов рекомендуется использовать StringBuilder.

DA0002: отсутствует файл VSPerfCorProf.dll

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

DA0003. Много выборок в режиме ядра

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

DA0004: потребление значительных ресурсов процессора

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

DA0005: частые коллекции GC2

В процессе сборки мусора 2-го поколения было удалено большое число объектов памяти .NET.

DA0006. Переопределение Equals() для типов значений

Вызовы метода Equals или операторов равенства открытого типа значения составляют значительную часть данных профилирования.Рекомендуется внедрить более эффективный метод.

DA0007. Избегайте использования исключений для потока управления

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

DA0008. Собрано несколько образцов

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

DA0009: High % time in JIT

Значительная доля времени выполнения приложения была потрачена в JIT-компиляторе.

DA0010. Затратный метод GetHashCode

Вызовы метода типа GetHashCode составляют значительную долю данных профилирования либо метод выделяет память.

DA0011: затратное CompareTo

Метод типа CompareTo является затратным или выделяет память.

DA0012. Слишком много вызовов метода Reflection

Вызовы методов System.Reflection, например InvokeMember и GetMember, или методов Type, например MemberInvoke, составляют значительную часть данных профилирования.Рекомендуется по возможности заменить эти методы ранней привязкой к методам зависимых сборок.

DA0013: интенсивное использование String.Split или String.Substring

Вызовы методов System.String.Split или System.String.Substring составляют значительную часть данных профилирования.Если выполняется проверка на наличие в строке подстроки, рекомендуется воспользоваться System.String.IndexOf или System.String.IndexOfAny.

DA0014: исключительно высокая скорость подкачки активной памяти на диск

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

DA0017: высокая скорость подкачки активной памяти на диск

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

DA0018. 32-битное приложение выполняется с ограничениями управляемой памяти процесса

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

DA0021: Высокая доля сборок мусора в генерации 1

Данные о производительности системы, собранные в ходе сеанса профилирования, свидетельствуют о том, что в 1-м поколении сборки мусора было очищено значительно больше памяти, используемой для объектов .NET Framework, чем при сборе данных 0-го поколения.

DA0022: Высокая доля сборок мусора в генерации 2

Данные о производительности системы, собранные в ходе сеанса профилирования, свидетельствуют о том, что во 2-м поколении сборки мусора было очищено значительно больше памяти, используемой для объектов .NET Framework, чем при сборке мусора 0-го и 1-го поколения.

DA0023. Высокое время ЦП ГК

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

DA0024. Избыточное время ЦП ГК

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

DA0026: обработка чрезмерного времени ядра ЦП

Доля времени, в течение которого ЦП работал в режиме ядра, превышает время, затраченное на пользовательский режим.Рекомендует выполнить профилирование еще раз и сделать выборку по числу системных вызовов (syscall), чтобы определить причину большого времени выполнения в режиме ядра.

DA0029: неподдерживаемая версия среды CLR

Предпринята попытка профилирования приложения, в котором используется платформа .NET Framework версии 1.1, не поддерживаемая средствами профилирования.

DA0030: сбор измерений взаимодействия уровней для проектов баз данных

Вызовы методов System.Data составляют значительную часть данных профилирования, но во время сеанса профилирования не были собраны данные уровневого взаимодействия.Рекомендуется повторить профилирование и добавить данные взаимодействия.

DA0038. Большое число конфликтов при блокировке

Данные о производительности системы, собранные вместе с данными профилирования, свидетельствуют о достаточно большом числе конфликтов блокировки, возникающих во время выполнения приложения.Рекомендуется повторить профилирование с использованием метода профилирования параллелизма для поиска причины конфликтов.

DA0039. Очень большое число конфликтов при блокировке

Данные о производительности системы, собранные вместе с данными профилирования, свидетельствуют о слишком большом числе конфликтов блокировки, возникающих во время выполнения приложения.Рекомендуется повторить профилирование с использованием метода профилирования параллелизма для поиска причины конфликта.

DA0501: средняя загрузка ЦП профилируемым процессом.

Результатом этого измерения является процент времени, в течение которого процессор оставался занятым выполнением инструкций, поступающих из приложения.Содержащееся в отчете значение является средним по всем интервалам измерения, в которых профилируемый процесс был активным.На компьютерах с несколькими процессорами значение этой величины может быть больше 100%.

DA0502. Максимальное использование ЦП профилируемым процессом

Результатом этого измерения является максимальный процент времени, в течение которого процессор оставался занятым выполнением инструкций, поступающих из приложения.Содержащееся в отчете значение является максимальным значением, полученным на всех интервалах измерения, в которых профилируемый процесс был активным.На компьютерах с несколькими процессорами процент может быть больше 100%.

DA0503. Средний рабочий набор в байтах для профилируемого процесса

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

DA0505. Максимальный рабочий набор в байтах для профилируемого процесса

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

DA0505. Среднее число байт исключительного пользования, распределенное для профилируемого процесса

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

DA0506. Максимальное число байт исключительного пользования, распределенное для профилируемого процесса

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