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


Оптимизация кода

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

Возможности языка

В следующих разделах описываются некоторые из возможностей оптимизации, доступных в языке C/C++.

Pragma оптимизации

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

Следует поместить код между двумя прагмами, как показано далее.

#pragma optimize("", off)
// some code here 
#pragma optimize("", on)

Примеры программирования

Также можно отметить появление дополнительных предупреждений во время компиляции кода с оптимизацией. Это нормально, поскольку некоторые предупреждения относятся только к оптимизированному коду. Если принимать во внимание такие предупреждения, можно избежать многих проблем, связанных с оптимизацией.

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

В следующих разделах рассматриваются рекомендуемые методы программирования.

Отладка оптимизированного кода

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

В следующих разделах содержатся основные сведения об отладке.

В следующих разделах содержатся более подробные сведения об отладке.

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

См. также

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

Образец построения C/C++