Правила производительности по идентификаторам
Предупреждение |
Описание |
---|---|
Вызовы System.String.Concat составляют значительную часть данных профилирования.Для построения строк из нескольких сегментов рекомендуется использовать StringBuilder. |
|
Профилировщику не удалось найти VSPerfCorProf.dll во время сеанса профилирования.Это предупреждение отображается, если программы командной строки для сбора данных профилирования используются без применения программы VSPerfCLREnv.cmd для инициализации необходимых переменных среды. |
|
Значительная часть образцов стека вызова, собранных для приложения, выполнялась в режиме ядра.Рекомендуется воспользоваться для профилирования приложения другим методом профилирования. |
|
Использование процессора (ЦП), указанное в данных профилирования, собранных с помощью метода инструментирования, было достаточно интенсивным.При профилировании приложений, связанных с процессором, рекомендуется воспользоваться методом профилирования с выборкой. |
|
В процессе сборки мусора 2-го поколения было удалено большое число объектов памяти .NET. |
|
Вызовы метода Equals или операторов равенства открытого типа значения составляют значительную часть данных профилирования.Рекомендуется внедрить более эффективный метод. |
|
DA0007. Избегайте использования исключений для потока управления |
В данных профилирование слишком большая частота вызова обработчиков исключений .NET Framework.Рекомендуется использовать другую логику потока управления для сокращения числа выдаваемых исключений. |
В сеансе профилирования было собрано всего несколько образцов.Для получения более значимых результатов рекомендуется удлинить сеанс или повысить частоту выборки. |
|
Значительная доля времени выполнения приложения была потрачена в JIT-компиляторе. |
|
Вызовы метода типа GetHashCode составляют значительную долю данных профилирования либо метод выделяет память. |
|
Метод типа CompareTo является затратным или выделяет память. |
|
Вызовы методов System.Reflection, например InvokeMember и GetMember, или методов Type, например MemberInvoke, составляют значительную часть данных профилирования.Рекомендуется по возможности заменить эти методы ранней привязкой к методам зависимых сборок. |
|
DA0013: интенсивное использование String.Split или String.Substring |
Вызовы методов System.String.Split или System.String.Substring составляют значительную часть данных профилирования.Если выполняется проверка на наличие в строке подстроки, рекомендуется воспользоваться System.String.IndexOf или System.String.IndexOfAny. |
DA0014: исключительно высокая скорость подкачки активной памяти на диск |
Данные о производительности системы, собранные в ходе сеанса профилирования, свидетельствуют о чрезвычайно высокой скорости подкачки активной памяти на диск и с него на протяжении сеанса профилирования.Обычно скорости подкачки на таком уровне влияют на производительность и скорость ответа приложения.Попробуйте сократить объем выделяемой памяти, изменив алгоритмы.Кроме того, возможно, нужно будет учесть требования к памяти, используемой приложением,запустив профилирование снова на компьютере с большим объемом памяти. |
Данные о производительности системы, собранные в ходе сеанса профилирования, свидетельствуют о высокой скорости подкачки активной памяти на диск и с него на протяжении сеанса профилирования.Обычно скорости подкачки на таком уровне влияют на производительность и скорость ответа приложения.Попробуйте сократить объем выделяемой памяти, изменив алгоритмы.Кроме того, возможно, нужно будет учесть требования к памяти, используемой приложением,запустив профилирование снова на компьютере с большим объемом памяти. |
|
DA0018. 32-битное приложение выполняется с ограничениями управляемой памяти процесса |
Системные данные, собранные во время сеанса профилирования свидетельствуют о том, что кучи памяти .NET Framework близки к максимально допустимому для управляемых куч размеру в 32-разрядном процессе.В отчете указывается максимальное значение для куч, полученное во время активности профилируемого процесса.Рекомендуется оптимизировать использование управляемых ресурсов приложением. |
Данные о производительности системы, собранные в ходе сеанса профилирования, свидетельствуют о том, что в 1-м поколении сборки мусора было очищено значительно больше памяти, используемой для объектов .NET Framework, чем при сборе данных 0-го поколения. |
|
Данные о производительности системы, собранные в ходе сеанса профилирования, свидетельствуют о том, что во 2-м поколении сборки мусора было очищено значительно больше памяти, используемой для объектов .NET Framework, чем при сборке мусора 0-го и 1-го поколения. |
|
Данные о производительности системы, собранные во время профилирования, свидетельствуют о том, что количество времени, затраченное на сборку мусора, достаточно велико по сравнению с общим временем обработки данных приложения. |
|
Данные о производительности системы, собранные во время профилирования, свидетельствуют о том, что количество времени, затраченное на сборку мусора, слишком велико по сравнению с общим временем обработки данных приложения. |
|
Доля времени, в течение которого ЦП работал в режиме ядра, превышает время, затраченное на пользовательский режим.Рекомендует выполнить профилирование еще раз и сделать выборку по числу системных вызовов (syscall), чтобы определить причину большого времени выполнения в режиме ядра. |
|
Предпринята попытка профилирования приложения, в котором используется платформа .NET Framework версии 1.1, не поддерживаемая средствами профилирования. |
|
DA0030: сбор измерений взаимодействия уровней для проектов баз данных |
Вызовы методов System.Data составляют значительную часть данных профилирования, но во время сеанса профилирования не были собраны данные уровневого взаимодействия.Рекомендуется повторить профилирование и добавить данные взаимодействия. |
Данные о производительности системы, собранные вместе с данными профилирования, свидетельствуют о достаточно большом числе конфликтов блокировки, возникающих во время выполнения приложения.Рекомендуется повторить профилирование с использованием метода профилирования параллелизма для поиска причины конфликтов. |
|
Данные о производительности системы, собранные вместе с данными профилирования, свидетельствуют о слишком большом числе конфликтов блокировки, возникающих во время выполнения приложения.Рекомендуется повторить профилирование с использованием метода профилирования параллелизма для поиска причины конфликта. |
|
Результатом этого измерения является процент времени, в течение которого процессор оставался занятым выполнением инструкций, поступающих из приложения.Содержащееся в отчете значение является средним по всем интервалам измерения, в которых профилируемый процесс был активным.На компьютерах с несколькими процессорами значение этой величины может быть больше 100%. |
|
DA0502. Максимальное использование ЦП профилируемым процессом |
Результатом этого измерения является максимальный процент времени, в течение которого процессор оставался занятым выполнением инструкций, поступающих из приложения.Содержащееся в отчете значение является максимальным значением, полученным на всех интервалах измерения, в которых профилируемый процесс был активным.На компьютерах с несколькими процессорами процент может быть больше 100%. |
DA0503. Средний рабочий набор в байтах для профилируемого процесса |
В этом сообщении указывается средний объем физической памяти в байтах, используемой процессом в данный момент (рабочее множество).Рабочее множество процесса соответствует страницам из адресного пространства процесса, которые в данный момент находятся в физической памяти. |
DA0505. Максимальный рабочий набор в байтах для профилируемого процесса |
В этом сообщении указывается максимальный объем физической памяти в байтах, используемой процессом в данный момент.Рабочее множество процесса соответствует страницам из адресного пространства процесса, которые в данный момент находятся в физической памяти.Это правило позволяет узнать максимальное значение для рабочего множества процесса при активном профилировании. |
DA0505. Среднее число байт исключительного пользования, распределенное для профилируемого процесса |
В этом сообщении указывается средний объем виртуальной памяти, выделенной в данный момент процессом, в байтах (байтах исключительного пользования).Байты исключительного пользования соответствуют участкам виртуальной памяти, которые были выделены процессом, и обращаться к которым могут только потоки, выполняющиеся внутри данного процесса. |
В этом сообщении указывается максимальный объем виртуальной памяти, выделенной в данный момент процессом, в байтах (байтах исключительного пользования).Байты исключительного пользования соответствуют участкам виртуальной памяти, которые были выделены процессом, и обращаться к которым могут только потоки, выполняющиеся внутри данного процесса. |