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


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

Этот раздел применим к:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

Тема применяется Тема применяется Тема не применяется Тема не применяется

В этом разделе описывается базовый метод использования средств профилирования Visual Studio Premium и Visual Studio Ultimate для анализа проблем производительности в приложении. Хотя в средствах профилирования предусмотрено множество параметров для сбора настаиваемых данных о производительности во многих типах приложений, этот раздел посвящен использованию мастера профилирования с целью сбора данных выборки для решения Visual Studio.

Примечание

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

В этом разделе

Основные понятия

Предварительные требования

Шаг 1. Создание и запуск сеанса анализа производительности

Шаг 2. Анализ данных выборки

Шаг 3. Анализ кода и повторный запуск профилировщика

Основные понятия

Сеанс анализа производительности   При использовании профилировщика производительности создается сеанс анализа производительности, содержащий данные конфигурации для сбора сведений о производительности и результаты одного или нескольких сеансов профилирования. После создания сеанса анализа производительности он отображается в окне "Обозреватель производительности".

Обозреватель производительности и его элементы

  1. Имя сеанса профилирования.

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

  3. В папке Reports содержатся файлы данных профилирования, созданные во время одного или нескольких сеансов сбора данных. Щелкнув имя файла, можно выбрать представления сведений о производительности, например вызовы функций, выделения памяти и данные об определенных функциях. Каждое представление отображается в основном окне Visual Studio.

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

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

Предварительные требования

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

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

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

Получение файлов символов Windows   При профилировании кода, вызывающего функции Windows, следует убедиться в наличии последних версий PDB-файлов. Без этих файлов имена функций Windows, перечисляемые в представлениях отчета, будут зашифрованными, и их будет сложно понять. Дополнительные сведения о проверке наличия необходимых файлов см. в разделе Практическое руководство. Справочная информация о символах Windows.

Шаг 1. Создание и запуск сеанса анализа производительности

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

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

  1. Откройте решение в среде Visual Studio.

  2. В меню Анализ щелкните Запустить мастер производительности.

  3. Примите заданный по умолчанию параметр ЦП Выборка (рекомендуется) и нажмите кнопку Далее.

  4. Оставьте проект по умолчанию и нажмите кнопку Далее.

  5. Убедитесь, что установлен флажок Запустить профилирование после завершения работы мастера и нажмите кнопку Готово.

    Запустится приложение и профилировщик начнет сбор данных.

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

  7. Закройте приложение обычным образом.

    После завершения работы приложения в основном окне Visual Studio для данных профилирования отобразится представление Сводка, а в окне Обозреватель производительности отобразится новый сеанс.

Шаг 2. Анализ данных выборки

По завершении сеанса производительности в основном окне Visual Studio для отчета о профилировании отобразится представление Сводка.

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

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

Каждая пронумерованная область на рисунке связана с определенным шагом процедуры.

Представление сводного отчета для выборки

Анализ данных выборки

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

    Критический путь профилировщика

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

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

  2. Щелкните имя этой функции для отображения представления Сведения о функции для данных профилирования. В представлении Сведения о функции отображается графическое представление данных профилирования для выбранной функции, на котором отражены все функции, вызывавшие данную функцию, и все функции, которые вызывала она сама.

    • Размер блоков вызывающих и вызываемых функций соответствует относительной частоте вызова функций.

    • Чтобы в представлении выбрать вызывающую или вызываемую функцию в представлении "Сведения о функции", щелкните ее имя.

    • В нижней области окна Сведения о функции отображается код самой функции. Если при анализе кода была обнаружена возможность для оптимизации производительности, щелкните имя исходного файла, чтобы открыть файл в редакторе Visual Studio.

  3. Для продолжения анализа вернитесь в представление Сводка, выбрав в раскрывающемся списке "Представление" пункт Сводка. Затем проанализируйте функции в списке Функции с максимальной индивидуальной работой. В этом списке отображаются функции с наибольшими включающими выборками. Код в теле этих функций выполнял наиболее важную работу, и его можно оптимизировать. Для дополнительного анализа определенной функции щелкните ее имя, чтобы она отобразилась в представлении Сведения о функции.

    Список функции, выполняющих большую часть работы

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

    Чтобы заново проанализировать сегмент, выберите сегмент на сводной временной шкале, затем щелкните Фильтр по выделенному.

    Временная шкала представления сводки производительности

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

    • Чтобы просмотреть функцию, вызвавшую предупреждение, дважды щелкните предупреждение в представлении Сведения о функции.

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

Шаг 3. Анализ кода и повторный запуск сеанса

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

Анализ кода и повторный запуск профилировщика

  1. Измените код.

  2. Чтобы открыть обозреватель производительности в меню Вид выберите команду Другие окна, а затем щелкните элемент Обозреватель производительности.

  3. В обозревателе производительности щелкните правой кнопкой мыши сеанс, который необходимо запустить повторно, и выберите Запустить с профилированием.

  4. После повторного запуска сеанса в папку Отчеты будет добавлен другой файл данных для сеанса в обозревателе производительности. Выберите исходные и новые данные профилирования, щелкните правой кнопкой мыши выбранное, а затем щелкните Сравнить отчеты о производительности.

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

См. также

Основные понятия

Анализ производительности приложения с помощью средств профилирования

Приступая к работе со средствами профилирования

Другие ресурсы

Обзоры (средства профилирования)