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

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

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

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

4
задан 10 June 2011 в 02:21

8 ответов

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

Все, что вы там выбрали, будет отображаться как флаг для GCC, поэтому после man-страницы 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 / Strong).

4
ответ дан 25 July 2018 в 21:45

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

Все, что вы там выбрали, будет отображаться как флаг для GCC, поэтому после man-страницы 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 / Strong).

4
ответ дан 31 July 2018 в 12:55

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

Все, что вы там выбрали, будет отображаться как флаг для GCC, поэтому после man-страницы 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 / Strong).

4
ответ дан 2 August 2018 в 03:21

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

Все, что вы там выбрали, будет отображаться как флаг для GCC, поэтому после man-страницы 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 / Strong).

4
ответ дан 4 August 2018 в 19:18

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

Все, что вы там выбрали, будет отображаться как флаг для GCC, поэтому после man-страницы 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 / Strong).

4
ответ дан 6 August 2018 в 03:31

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

Все, что вы там выбрали, будет отображаться как флаг для GCC, поэтому после man-страницы 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 / Strong).

4
ответ дан 7 August 2018 в 21:19

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

Что бы вы там ни выбрали, в качестве флага для GCC будет указан флаг, поэтому, следуя man-странице GCC : [ ! d18]

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

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

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

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

  gcc -O & lt; 1-3 & gt;  -Q --help = optimizers  

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

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

4
ответ дан 10 August 2018 в 09:37

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

Что бы вы там ни выбрали, в качестве флага для GCC будет указан флаг, поэтому, следуя man-странице GCC : [ ! d18]

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

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

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

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

  gcc -O & lt; 1-3 & gt;  -Q --help = optimizers  

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

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

4
ответ дан 13 August 2018 в 15:47

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

Похожие вопросы: