В Visual Studio, чтобы ускорить мою программу, я добавляю две вещи:
Первый — перевести режим отладки в режим выпуска.
Второй — включить -O2 (поэтому вам необходимо отключить базовые проверки времени выполнения) в свойствах проекта.
Обычно я использую их вместе, но я слышал (?), что режим Release включает оптимизацию -O2, поэтому мне просто интересно, правда ли это.
Я попробовал множество программ из своих предыдущих проектов, и стало ясно, что режим Release + O2 работает в 3–10 раз быстрее, чем исходная программа без оптимизации. Но мне неясно, нужен ли только режим Release для такой быстрой работы программы.
Кроме того, Debug и Release — это только два значения по умолчанию. Помимо их изменения, вы также можете использовать альтернативу Configuration Manager...
, чтобы добавить совершенно новые пользовательские настройки проекта с любыми параметрами, которые вам нравятся (возможно, чтобы использовать компилятор Clang, чтобы получить второе мнение о вашем коде).
Каждая конфигурация в Visual Studio определяет набор параметров проекта.
Когда вы создаете новый проект, он по умолчанию имеет две конфигурации: отладку и выпуск (при необходимости вы можете добавить больше через диспетчер конфигурации).
Обычно в Debug проект создается с отладочной информацией и без оптимизации, а в Release проект строится без отладочной информации и с некоторыми оптимизациями.
Но это всего лишь значения по умолчанию, и вы можете изменить их в соответствии со своими потребностями.
Чтобы максимизировать производительность, рекомендуется начать с конфигурации Release.
Мой MSVC 2022 устанавливает его по умолчанию с оптимизацией O2.
Вы можете попробовать изменить различные настройки оптимизации и профилировать свой код, если хотите достичь максимальной производительности.
Настройки оптимизации находятся в разделе «Свойства проекта» -> «C/C++» -> «Оптимизация»:
Отладка и выпуск — это конфигурации по умолчанию, с которых начинается проект. По умолчанию в Release отключено большинство настроек отладки и включены некоторые оптимизации. Вам следует просмотреть свойства каждой конфигурации, чтобы увидеть различия.