Как пользователь Gentoo, я пробовал довольно много оптимизаций на полной ОС, и на форумах Gentoo велись бесконечные дискуссии об этом. Некоторые хорошие флаги для GCC можно найти в wiki .
Короче говоря, оптимизация по размеру лучше всего работала на старом ноутбуке Pentium3 с ограниченным количеством оперативной памяти, но на моем главном настольном компьютере с Core2Duo -O2 давал лучшие результаты по всем параметрам.
Существует также небольшой скрипт , если вас интересуют специфичные для x86 (32 бит) флаги, которые наиболее оптимизированы.
Если вы используете gcc и действительно хотите оптимизировать конкретное приложение, попробуйте ACOVEA . Он запускает набор тестов, а затем перекомпилирует их со всеми возможными комбинациями флагов компиляции. На сайте есть пример использования кодировки Хаффмана (чем ниже, тем лучше):
A relative graph of fitnesses:
Acovea Best-of-the-Best: ************************************** (2.55366)
Acovea Common Options: ******************************************* (2.86788)
-O1: ********************************************** (3.0752)
-O2: *********************************************** (3.12343)
-O3: *********************************************** (3.1277)
-O3 -ffast-math: ************************************************** (3.31539)
-Os: ************************************************* (3.30573)
(Обратите внимание, что он оказался самым медленным в этой системе Opteron.)