Вопрос: Каковы различные применения для уровней оптимизации apt-build?


Была установка apt-build. Выделили три уровня оптимизации для кода: «Свет», «Средний» и «Сильный». Он предупредил, что сильный приведет к нестабильности системы, поэтому я выбрал Medium.

Существует ли наблюдаемая разница между уровнями оптимизации?

Должен ли я просто пойти -O3?


4
2018-06-09 21:21


Источник




Ответы:


Я бы сказал, что это вряд ли зависит от кода, который вы компилируете.

Независимо от того, что вы там выбираете, в качестве знака для GCC будет указано следующее: Персональная страница GCC:

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

-O2 Оптимизируйте еще больше. GCC выполняет почти все поддерживаемые оптимизации, которые не связаны с компрометацией космической скорости. По сравнению с -O, этот параметр увеличивает как время компиляции, так и производительность сгенерированного кода.

-O3 Оптимизируйте еще больше. -O3 включает все оптимизации, указанные в -O2 а также включает -finline-functions, -funswitch-loops, -fpredictive-commoning, -fgcse-after-reload, -ftree-vectorize а также -fipa-cp-clone опции.

Вы можете запустить

gcc -O<1-3> -Q --help=optimizers

чтобы увидеть набор активированных методов оптимизации для каждого уровня оптимизации.

Чем агрессивнее они, тем больше риск того, что компилятор что-то привнесет (не должно произойти, и я не знаю, насколько вероятно что-то произойдет, но если вы хотите быть в безопасности, я предлагаю вам следовать apt рекомендация -build не использовать -O3/сильный).


4
2017-08-20 12:28