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


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

Профильная оптимизация подключаемого модуля Visual C++ в Концентраторе производительности и диагностики ускоряет взаимодействие профильной оптимизации для разработчиков.Загрузить подключаемый модуль можно с веб-сайта Visual Studio.

Профильная оптимизация (PGO) позволяет создать построения x86 и x64 собственные приложения, оптимизированные для способа, которым пользователи взаимодействуют с ними.Профильная оптимизация - многоступенчатый процесс: сначала выполняется построение приложения, которое инструментировано для профилирования, а затем проводится "обучение" - то есть инструментированное приложение запускается с разными сценариями взаимодействия с пользователем.Собранные данные профилирования сохраняются, и затем происходит перестроение приложение с использованием результатов, которые направят оптимизацию всей программы.Хотя можно выполнить следующие действия по отдельности в Visual Studio или из командной строки, подключаемый модуль профильное оптимизации централизует и упрощает процесс.Подключаемый модуль профильной оптимизации задает все необходимые параметры, руководит каждым шагом, показывает анализ, а затем использует результаты для настройки построения, чтобы оптимизировать каждую функцию по размеру и скорости.Подключаемый модуль профильной оптимизации также упрощает повторное обучение приложения и обновление данных для оптимизации построения по мере внесения изменений в код.

Необходимые компоненты

Необходимо загрузить подключаемый модуль профильной оптимизации и установить его в Visual Studio перед тем, как использовать его в концентраторе производительности и диагностики.

Пошаговое руководство: Использование подключаемых модулей профильной оптимизации для оптимизации приложения

Сначала создайте в Visual Studio простое настольное приложение Win32.Если уже есть собственное приложение, которое нужно оптимизировать, то его можно использовать и пропустить этот шаг.

Чтобы создать приложение

  1. В строке меню Файл выберите пункты Создать, Проект.

  2. В левой области диалогового она Создать проект разверните Установленные, Шаблоны, Visual C++ и затем выберите MFC.

  3. В центральной области выберите Приложение MFC.

  4. Укажите имя проекта — например, SamplePGOProject — в поле Имя.Нажмите кнопку ОК.

  5. На странице Обзор диалогового окна Мастер приложений MFC нажмите кнопку Готово.

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

Чтобы задать конфигурацию построения

  1. В строке меню последовательно выберите пункты Сборка и Диспетчер конфигураций.

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

Откройте Концентратор производительности и диагностики - в строке меню выберите Анализ, Производительность и диагностика.Это откроет страницу сеанса диагностики со средствами анализа, доступными для данного типа проекта.

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

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

Вводная страница профильной оптимизации

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

Страница инструментирования профильной оптимизации

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

Нажмите кнопку Инструментировать, чтобы построить приложение со специальным набором параметров компилятора.Компилятор вставляет инструкции зонда в созданный код.Эти инструкции записывают данные профилирования на этапе обучения.

Страница инструментированной сборки профильной оптимизации

По завершению построения инструментированного приложения приложение запускается автоматически.

Если во время построения возникли какие-либо ошибки или предупреждения, исправьте их, а затем выберите команду Перезапуск построения, чтобы перезапустить инструментированное построение.

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

Страница обучения профильной оптимизации

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

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

Страница анализа профильной оптимизации

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

Файл данных профилирования сохраняется в проекте в папке PGO Training Data.Эти данные используются для управления параметрами компилятора по оптимизации построения в приложении.

Файл данных профильной оптимизации в обозревателе решений

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

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

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