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


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

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

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

Руководство по улучшению производительности с помощью диаграммы пламени см . в руководстве по оптимизации кода для начинающих. Сведения о профилировщике ЦП см. в статье "Анализ производительности с помощью профилирования ЦП".

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

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

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

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

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

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

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

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

    Снимок экрана: обзор пламя графа отображается.

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

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

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

    Снимок экрана: Пламя граф для сложного дерева вызовов.

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

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

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

    Снимок экрана: параметр

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

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

Вы можете просмотреть стандартный макет пламени, щелкнув "Флип Пламя граф".

Снимок экрана: выбранный граф флип-пламя.

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

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

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