Прочитать на английском

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


Определение горячих путей с помощью графа пламени (C#, Visual Basic, C++, F#)

Инструменты профилирования Visual Studio для анализа использования ЦП и инструментирования включают представление флейм-граф . Flame Graph помогает определить узкие места в вашем коде, показывая визуализацию дерева вызовов. горячий путь — это стек вызовов для функций, которые используют наибольшую долю CPU или времени, и это часто хорошее место для поиска потенциальных возможностей оптимизации производительности. График показывает, на что тратится время в вашем приложении, и вы можете щелкнуть на определенные узлы, чтобы углубиться в них.

снимок экрана:

Для получения указаний о том, как повысить производительность с помощью flame-графа, см. раздел Исследование примера: руководство для начинающих по оптимизации кода. Сведения о профилировщике ЦП см. в статье Анализ производительности с помощьюпрофилирования ЦП.

Изучение горячих путей

Представление "Диаграмма пламени" находится в сведениях представления отчета .diagession.

  1. Запустить сеанс профилирования с помощью инструмента "Анализ использования ЦП" или "Инструментирование".

  2. После остановки сеанса профилирования и загрузки отчета выберите Открыть сведения.

    снимок экрана с выбранным параметром

  3. Выберите график пламени в раскрывающемся списке "Текущее представление".

    снимок экрана с выбранным представлением

    Откроется представление "Диаграмма пламени".

    снимок экрана с отображением обзора Flame Graph.

    Горячий путь — это путь кода, который использует больше всего ресурсов ЦП или затрачивает больше времени при движении вниз по дереву вызова.

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

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

    снимок экрана с диаграммой пламени для сложного дерева вызовов.

    Чтобы просмотреть сведения о любом узле, выберите узел.

    Выберите сброс масштабирования, чтобы вернуться к виду по умолчанию.

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

    снимок экрана, показывающий опцию

Перевернуть диаграмму пламени

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

Вы можете просмотреть стандартный флейм-чарт, щелкнув перевернутый флейм-граф.

снимок экрана с выбранным графом Flip Flame.

Для сложного графа пламени можно увеличить масштаб визуализации, выбрав определенные элементы.

В представлении "Диаграмма пламени" можно перемещаться, кликнув на узел мышью или с помощью клавиатуры. Кроме того, поддерживаются следующие сочетания клавиш.

Сочетание клавиш Приказ
Вкладка Перейти к любому узлу
СТРЕЛКА ВВЕРХ/ВНИЗ Перейдите к родителю или потомку узла
Стрелка вправо или влево Перейдите к одноуровневому узлу в стеке.
Войти Увеличить (выбрать)
Побег Уменьшение масштаба