SpecTips/optflags

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Оптимизация[править]

Макросы[править]

Сильно рекомендуется использовать обычный %optflags. [TODO: раскрыть тему %remove_optflags]

Текущее значение можно получить командой rpm --eval %optflags (зависит от платформы).

Соображения и рекомендации[править]

Date: Thu, 29 Sep 2005 03:52:23 +0400
From: "Dmitry V. Levin" <ldv@>
To: Sisyphus discussion list <sisyphus@>
Subject: Re: [sisyphus] компиляция с использованием параметров оптимизации

On Thu, Sep 29, 2005 at 03:44:27AM +0400, Alexey Tourbin wrote:
> On Wed, Sep 28, 2005 at 12:21:13PM +0300, Led wrote:                  
> > > медленно). С -O3 собиратся будет раза в два медленнее, но и работать будет
> > > быстрее.                                                            
> Не будет.
>                                                                          
> > Тут есть ньюансы:) Бывают случаи (логически объяснимые), когда сборка с -Os 
> > получается самым быстрым вариантом:)                                   
> Таких случаев больше половины.  Логическое объяснение -- кеш
> у процессоров не резиновый.  -O3 может дать небольшой прирост
> производительности на интенсивных математических вычислениях,
> но для типичного кода, который "скачет" по библиотекам и часто
> делает системные вызовы, раскрутка циклов и т.п. заметно портит дело.
> 
> Перл и все перловые модули сейчас собираются с -Os.  Я когда-то   
> профилировал, по сравнение с -O2 выигрыш примерно 7%.
> 
> Короче, лучше не париться, %optflags сойдёт.

Общее правило такое:

До тех пор, пока вы сами либо те, кому вы доверяете, не выполнили
сравнение производительности данного конкретного исполняемого файла,
собранного с использованием разных параметров оптимизации, для сборки
этого файла следует использовать %optflags.