Что такое параметр "optimize" в определении сборки файла vproj?

У меня есть файл vproj, который я открыл в блокноте,

Какова работа optimize параметр здесь, какая разница между True а также False?

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

<DebugType>pdbonly</DebugType>

<DefineDebug>false</DefineDebug>

<DefineTrace>true</DefineTrace>

<Optimize>true</Optimize> <!-- Here -->

1 ответ

Решение

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

Переменные хранятся в регистрах

Как только вы включите оптимизацию, компилятор применяет множество различных методов, чтобы сделать код более быстрым, в то же время делая то же самое. Наиболее очевидное различие между оптимизированными и неоптимизированными сборками в Visual C++ заключается в том, что значения переменных хранятся в регистрах как можно дольше в оптимизированных сборках, а без оптимизации они всегда сохраняются в памяти. Это влияет не только на скорость кода, но и на отладку. В результате этой оптимизации отладчик не может надежно получить значение переменной, когда вы шагаете по коду.

Вот мой источник - Что действительно делает опция "Оптимизировать код" в Visual Studio?

Другие вопросы по тегам