Это зависит от вашей версии gcc, вашего оборудования, вашего дистрибутива и многих других вещей. Как правило, ваш поставщик дистрибутивов Linux провел бы это исследование для вас и использовал бы эти опции при сборке вашего пакета. Тем не менее, дистрибутивы пытаются заставить вещи работать с большинством аппаратных средств и ожиданий пользователей. Я нахожу большинство настроек без особых проблем с Gentoo . Linux с нуля или накатить свой собственный дистрибутив - это много работы. У меня есть установка Gentoo с отключенной 32-битной эмуляцией в ядре.
Из Руководства по оптимизации Gentoo лучше использовать -O2
вместо-O3
-O3: это максимально возможный уровень оптимизации, а также самый рискованный. Скомпилирование вашего кода с этой опцией займет больше времени, и фактически его не следует использовать для всей системы с gcc 4.x. Поведение gcc значительно изменилось с версии 3.x. В 3.x было показано, что -O3 приводит к немного более быстрому времени выполнения по сравнению с -O2, но это больше не относится к gcc 4.x. Компиляция всех ваших пакетов с -O3 приведет к большим бинарным файлам, которые требуют больше памяти, и значительно увеличит шансы сбоя компиляции или неожиданного поведения программы (включая ошибки). Недостатки перевешивают выгоды; помните принцип убывающей отдачи. Использование -O3 не рекомендуется для gcc 4.x.
-mtune=core2
Это нормально, если вы уверены, что это лучший выбор для вашего процессора. Мне лично нравится -march=native
вместо этого. Смотрите Gentoo Safe CFlags
GCC 4.2 представляет новую опцию -march -march = native, которая автоматически определяет функции, поддерживаемые вашим процессором, и устанавливает параметры соответствующим образом. Если у вас процессор Intel или AMD и вы используете> = sys-devel / gcc-4.2.3, рекомендуется использовать -march = native.
-m64
является опцией процессора и должна быть автоматически установлена с помощью -mtune=core2
или -march=native
. См. Параметры GCC i386 и x86-64 .
Отказ от ответственности: вам не нужно переключаться на Gentoo, чтобы использовать их советы для компиляции из исходного кода.