Практическое руководство. Настройка оптимизации компилятора (Visual Basic). Оптимизация visual studio 2013


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

 

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

msdn.microsoft.com

/Zo (улучшение оптимизированного процесса отладки)

Рекомендуем использовать Visual Studio 2017

Эта документация перемещена в архив и не поддерживается.

Visual Studio 2015

 

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

Создает расширенные сведения об отладке для оптимизированного кода в неотладочных сборках.

Переключатель компилятора /Zo создает расширенные сведения об отладке для оптимизированного кода. При оптимизации могут использоваться регистраторы для локальных переменных, изменения в порядке кода, векторизация циклов и вызовы встроенных функций. Такая оптимизация может скрывать связи между исходным кодом и кодом скомпилированного объекта. Переключатель /Zo указывает компилятору о необходимости создания дополнительных сведений об отладке для локальных переменных и встроенных функций. Используйте его для просмотра переменных в окнах Автоматические, Локальные и Просмотр при выполнении пошаговых инструкций по оптимизированному коду в отладчике Visual Studio. Он также позволяет выполнять трассировки стека для отображения встроенных функций в отладчике WinDBG. Отладочные сборки с отключенной оптимизацией (/Od) не требуют создания дополнительных сведений об отладке при указании /Zo. Используйте переключатель /Zo для отладки конфигураций выпуска с включенной оптимизацией. Дополнительные сведения о переключателях оптимизации см. в разделе Параметры /O (оптимизация кода). Параметр /Zo включен по умолчанию в Visual Studio 2015 при указании отладочной информации с /Zi или /Z7. Укажите /Zo-, чтобы явно отключить этот параметр компилятора.

Переключатель /Zo доступен в Visual Studio 2013 с обновлением 3 и заменяет не документированный ранее переключатель /d2Zi+.

Установка параметра компилятора /Zo в Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее: Открытие свойств страниц проекта.

  2. Выберите папку Свойства конфигурации, а затем папку C/C++.

  3. Выберите страницу свойств Командная строка.

  4. Измените свойство Дополнительные параметры, включив параметр /Zo, а затем нажмите кнопку ОК.

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

Параметры /O (оптимизация кода)/Z7, /Zi, /ZI (формат отладочной информации)Изменить и продолжить

msdn.microsoft.com

Советы и рекомендации по работе в Visual Studio

Рекомендуем использовать Visual Studio 2017

Эта документация перемещена в архив и не поддерживается.

Visual Studio 2015

 

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

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

Перетащить с плавающих наборов вкладокCTRL+щелкнуть для выделения нескольких элементов
Развернуть плавающее окноДважды щелкнуть заголовок окна
Повторное закрепить плавающее окноCTRL+дважды щелкнуть заголовок окна
Закрыть активный документCtrl+F4
Показать список открытых файловCTRL+ALT+СТРЕЛКА ВНИЗ
Показать все плавающие окнаCTRL+SHIFT+M
Переместить или закрепить плавающие окнаWIN+СТРЕЛКА ВЛЕВО или WIN+СТРЕЛКА ВПРАВО
Развернуть или свернуть окнаWIN+СТРЕЛКА ВВЕРХ или WIN+СТРЕЛКА ВНИЗ
Показать список переходовWIN+ALT+N
Запустить новый экземплярWIN+SHIFT+N
Переключиться между окнамиWIN+N
Искать в обозревателе решенийCTRL+;
Поместить фокус в поле поиска в любом окне инструментовALT+`, когда окно инструментов имеет фокус
Быстрый запускCTRL+Q
Быстрый запуск — задание области результатов- @opt — параметры- @cmd — команды- @mru — последние использовавшиеся- @doc — открытые документы
Искать в "Инструменты" > "Параметры"CTRL+E
Быстрый поискCTRL+F
Быстрый поиск — следующий результатВВОД
Быстрый поиск — предыдущий результатSHIFT+ВВОД
Быстрый поиск — развернуть раскрывающийся списокAlt+Вниз
Закрыть поискESC
Быстрая заменаCTRL+H
Быстрая замена — заменить следующийAlt+R
Быстрая замена — заменить всеALT+A
Поиск в файлахCtrl+Shift+F
Заменить в файлахCtrl+Shift+H
Режим предложений IntelliSenseCTRL+ALT+ПРОБЕЛ (переключение)
Принудительно показывать IntelliSenseCTRL+J
Смарт-тегиCTRL+.
Выбор фрагментов кодаCTRL+K,X или ?,TAB (VB)
ОкружитьCTRL+K,S
Показать краткие сведенияCTRL+K,I
Функция "Перейти к"CTRL+,
Перейти к определениюF12
Показать определениеALT+F12
Перейти к стеку определенийCTRL+SHIFT+8 (назад), CTRL+SHIFT+7 (вперед)
Перейти по выделенным ссылкамCTRL+SHIFT+СТРЕЛКА ВВЕРХ (предыдущая), CTRL+SHIFT+СТРЕЛКА ВНИЗ (следующая)
Редактор, масштабCTRL+SHIFT+> (больше), CTRL+SHIFT+< (меньше)
Выбор блокаУдерживать ALT и перетащить указатель мыши, клавиши SHIFT+ALT+СТРЕЛКА
Переместить строку вверх или внизALT+СТРЕЛКА ВВЕРХ или ALT+СТРЕЛКА ВНИЗ
Показать определениеALT+F12
Закрыть окно "Показать определение"ESC
Повысить уровень окна "Показать определение" до обычной вкладки документаCTRL+ALT+HOME
Перемещение между несколькими окнами "Показать определение"CTRL+ALT+- и CTRL+ALT+=
Перемещение между несколькими результатами "Показать"F8 и SHIFT+F8
Переключение между окном редактора кода и окном "Показать определение"SHIFT+ESC
Добавить кнопкиНажать кнопку переполнения панели инструментов
Поле со списком поиска на панели инструментов "Стандартная"CTRL+D
Режим команд поля поискаВвести ">"
Создать новый псевдонимКоманда >alias новый_псевдоним
Начало отладкиF5
Остановить отладкуSHIFT+F5
Перезапустить отладкуCtrl+Shift+F5
Шаг с обходомF10
Шаг с заходомF11
Шаг с выходомSHIFT+F11
Выполнение до текущей позицииCtrl+F10
Задать следующий операторCtrl+Shift+F10
Задать и переключить состояние точки остановаF9
Отключить точку остановаCtrl+F9
Окно интерпретацииCtrl+Alt+I
Режим команд окна интерпретацииВвести ">"
Очистить буфер окна интерпретации>cls
Значение печати окна интерпретации?varname

См. раздел Сочетания клавиш: Visual Studio Online, веб-портал TFS и Team Explorer.

Блог Visual StudioБлог Visual Studio Tips and TricksVisual Studio Toolbox на Channel 9Visual Studio UserVoiceVisual Studio Connect Bugs

msdn.microsoft.com

Практическое руководство. Настройка оптимизации компилятора (Visual Basic)

Рекомендуем использовать Visual Studio 2017

Эта документация перемещена в архив и не поддерживается.

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

Для удаления проверки переполнения целочисленных значений

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

  2. Перейдите на вкладку Compile.

  3. Нажмите кнопку Дополнительные параметры компиляции.

  4. В диалоговом окне Дополнительные параметры компилятора установите флажок Удалить проверки переполнения для целочисленных значений.

Для включения оптимизации в выходном файле

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

  2. Перейдите на вкладку Compile.

  3. Нажмите кнопку Дополнительные параметры компиляции.

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

Для создания отладочной информации

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

  2. Перейдите на вкладку Compile.

  3. Нажмите кнопку Дополнительные параметры компиляции.

  4. Откроется диалоговое окно Дополнительные параметры компилятора. В списке Создать отладочную информацию выберите значение Полная, Отсутствует или Только PDB.

Задачи
Ссылки
Другие ресурсы

msdn.microsoft.com

Диалоговое окно "Дополнительные параметры компилятора" (Visual Basic)

 

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

Дополнительные свойства конфигурации построения проекта можно задать в диалоговом окне Дополнительные параметры компилятора конструктора проекта. Это диалоговое окно относится только к проектам Visual Basic.

Чтобы получить доступ к этому диалоговому окну, выполните следующие действия.

  1. В Обозреватель решений выберите узел проекта (не узел Решение ).

  2. В меню Проект выберите пункт Свойства. В появившемся конструкторе проектов перейдите на вкладку Компиляция.

  3. На странице Страница "Компиляция" в конструкторе проектов (Visual Basic) выберите Конфигурация и Платформа. В упрощенных конфигурациях построения списки Configuration и Platform не отображаются. Для получения дополнительной информации см. Debug and Release Project Configurations.

  4. Щелкните Дополнительные параметры компиляции.

Примечание

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

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

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

Если выбрана условий переполнения и переполнения операции целые числа, возникает исключение OverflowException. Если условий переполнения не проверяются, переполнения операции целые числа, не вызывает исключение.

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

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

Создать отладочную информациюВыберите из списка вариант Отсутствует, Полная или Только PDB. Вариант Отсутствует указывает, что отладочной информации генерироваться не будет. Вариант Полная указывает, что будет генерироваться полная отладочная информация, а вариант Только PDB — только отладочная информация PDB. По умолчанию этот параметр имеет значение Полная.

Константы условной компиляции имеют результат аналогичен параметрам использования директивы препроцессора #Const в файле источника, за исключением того, что константы определены открытым и применяются ко всем файлам в проекте. Константы условной компиляции можно использовать вместе с директивой #Else #If… Then…, чтобы компилировать файлы источника условно. Дополнительные сведения см. в разделе Условная компиляция.

Определить константу DEBUGПо умолчанию этот флажок установлен, указывая тем самым, что константа DEBUG будет задана.

Определить константу TRACEПо умолчанию этот флажок установлен, указывая тем самым, что константа TRACE будет задана.

Настраиваемые константыВведите в это текстовое поле все настраиваемые константы для данного приложения. Записи должны быть разделены запятыми с соблюдением следующей формы: Name1="Value1",Name2="Value2",Name3="Value3".

Создать сборки сериализацииЭтот параметр определяет, будет ли компилятор создавать сборки сериализации XML. Сборки сериализации могут повысить производительность класса XmlSerializer при запуске, если данный класс использовался в коде для сериализации типов. По умолчанию этот параметр имеет значение Авто, обозначающее, что сборки сериализации будут генерироваться только в том случае, если для кодирования типов в формат XML в данном коде использовался класс XmlSerializer. Значение Выкл. обозначает, что независимо от использования в коде класса XmlSerializer сборки сериализации генерироваться не будут. Значение Вкл. обозначает, что сборки сериализации будут генерироваться всегда. Сборкам сериализации присваиваются имена TypeName.XmlSerializers.dll.

Страница "Компиляция" в конструкторе проектов (Visual Basic)

msdn.microsoft.com

Профильная оптимизация

 

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

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

Профильные оптимизации доступны только при компиляции в машинный код для x86 и x64. Они недоступны для выходных файлов, которые будут запускаться в среде CLR. Даже если создать сборку со смешанным машинным и управляемым кодом (компиляция с параметром /clr), невозможно использовать профильную оптимизацию только для машинного кода. Попытка построить проект с этими параметрами, заданными в среде разработки, приведет к ошибке построения.

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

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

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

Ниже приведен список профильных оптимизаций.

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

Подключаемый модуль профильной оптимизации

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

Практическое руководство. Слияние нескольких профилей PGO в единый профиль

Средства построения С/C++

msdn.microsoft.com

/Og (Виды глобальной оптимизации)

 

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

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

Доступны следующие виды оптимизации.

/Og также включает оптимизацию именованных возвращаемых значений, при которой для стековых возвращаемых значений не используются конструкторы копирования и деструкторы. Дополнительные сведения см. в разделе /O1, /O2 (минимизировать размер, максимизировать скорость).

Связанные сведения см. в разделах Создание встроенных функций (/Oi) и Полная оптимизация (/Ox).

/Og не рекомендуется использовать; используйте/O1 или /O2. Для получения дополнительной информации см. Deprecated Compiler Options in Visual C++ 2005.

Установка данного параметра компилятора в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Открытие свойств страниц проекта.

  2. Откройте папку C/C++.

  3. Выберите страницу свойств Командная строка.

  4. Введите параметр компилятора в поле Дополнительные параметры.

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

Параметры /O (оптимизация кода)Параметры компилятораНастройка параметров компилятора

msdn.microsoft.com


Prostoy-Site | Все права защищены © 2018 | Карта сайта