LINUX.ORG.RU

Некоторые вопросы по флагам агрессивной оптимизации в GCC

 , ,


0

1

Есть следующие флаги:

  • -O3 (вместо -O2)
  • -fipa-pta
  • -flto

Вопрос в том, стоит ли их юзать для пересборки всей системы?
То есть, насколько стабильный код генерируется - и есть ли хоть какое-то преимущество по скорости?
CPU - Sandy Bridge (Core i5).

// не хочу особо беспокоить, но - Sylvia?

★★★★★

не хочу особо беспокоить, но - Sylvia?

Ловите некрофила!

стоит ли их юзать для пересборки всей системы?

Однозначно, НЕТ.

fragmentor
()

Мне больше интересно: почему средний человек всегда уверен, что схематично повторяя внешние повадки профессионально подкованного человека он может придти к положительному результату.

anonymous
()
Ответ на: комментарий от anonymous

Нет, не лучше. Если жёстко указать архитектуру, то почему-то отбрасываются некоторые флаги - размеры кэшей, например.

fragmentor
()
Ответ на: комментарий от beresk_let

Нет, не стоит.

Опять же, можно конкретные причины? Меня напрягают категоричные утверждения без очевидных оснований.

intelfx ★★★★★
() автор топика
Ответ на: комментарий от intelfx

Потому что агрессивная оптимизация почти наверняка подкинет если не проблемы со сборкой, то разнообразные плавающие баги, вплоть до стабильно вылетающих сегфолтов.

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

fragmentor
()
Ответ на: комментарий от intelfx

Получится нестабильная система. И отловить косяки бывает достаточно сложно, особенно в том случае, когда ведёт себя странно одна программа, а причина такого поведения — в трёх-четырёх библиотеках, с которыми она линкуется.

Кроме того, с -flto вся система у тебя и не соберётся.

beresk_let ★★★★★
()

-O3 профита особого не даст, ибо код раздувает.
Остальные зело нестабильные.

Лучше -march=native -O2 -ftree-vectorize -mfpmath=both используй.

devl547 ★★★★★
()
Ответ на: комментарий от intelfx

Очевидное основание - само название: «агрессивные оптимизации».

fragmentor
()
Ответ на: комментарий от devl547

у меня вся система так собрана без проблем

Это ещё не причина советовать включать этот флаг всем подряд.

fragmentor
()
Ответ на: комментарий от fragmentor

точно. полуркал, народ на форумах поддверждает. спсб за подсказку

anonymous
()
Ответ на: комментарий от devl547

Окей. Да, по -fipa-pta я много тикетов в их багзилле видел...

А всякие там "-fpredictive-commoning -fgcse-after-reload", которые в -O3 входят? Они ведь, как я понимаю, лишнего кода не генерят?

intelfx ★★★★★
() автор топика
Ответ на: комментарий от beresk_let

Отключаешь всё ненужное, включаешь нужное. Меньше зависимостей -> меньше звеньев в системе -> выше скорость и стабильность.

fragmentor
()
Ответ на: комментарий от fragmentor

Тайного Знания™, которое не постичь обычным здравым смыслом, очевидно. =)

beresk_let ★★★★★
()
Ответ на: комментарий от intelfx

Пересобирать в Арче - это изврат. Сам на нём, пакеты из репозиториев не пересобираю, ибо нафига. Хотя говорят, если systemd пересобрать, будет чуть быстрее.

anonymous
()
Ответ на: комментарий от intelfx

Это уже похоже на стокгольмский синдром :)

Дело, впрочем, тут не в этом. Зачем превращать в source-дистрибутив дистрибутивы, которые не source изначально? Я вот тоже как-то раз пытался на дебиане сделать apt-build world, но охерел от тонн ненужных зависимостей и перешёл на генту.

fragmentor
()
Ответ на: комментарий от intelfx

а что там тогда пересобирать-то? только пакеты из АУРа. но многие с О3 могут не скомпилироваться

anonymous
()
Ответ на: комментарий от anonymous

Можно пересобрать всё. Есть же ABS и замечательный pacbuilder (или даже не pacbuilder - у меня, например, самописный скрипт сборки на Make-файлах).

intelfx ★★★★★
() автор топика
Ответ на: комментарий от fragmentor

Ну, может и я на генту перейду в итоге. На самом деле, между ними как раз и выбирал.

В арче мне понравился минимализм пакетного менеджера/системы сборки, которая одновременно и бинарная (что удобно в большинстве случаев, когда тебе просто надо что-то быстро поставить), и очень дружелюбная по отношению к любителям собирать (вот тебе makepkg и /var/abs - и делай что хочешь).

intelfx ★★★★★
() автор топика
Ответ на: комментарий от intelfx

около года назад, когда переходил на Линукс, почти не пробовал никаких дистров (т.е. было что-то, типа Убунта, потом прочитал про Арч и Джентов), т.к. знаний было мало, решил попробовать какой-либо форк Арч с графической установкой, поставил Синнарч (RIP), посидел в нём месяцок, пообтёрся, и перешёл на чистый Арч, а на Дженту не захотел, т.к. ломает время тратить на компиляцию, хотя может быть в межсезонье перейду на еён

anonymous
()
Ответ на: комментарий от fragmentor

Слушай, ты же кедоё^Hлюб? Я тут калькулейт поставил на посмотреть, но уже морально готов канпелять, покажи свой список общих юзов

overmind88 ★★★★★
()
Ответ на: комментарий от overmind88
frag@locus ~ $ flags global
List of a global flags
Turned on flags:
 aalib
 aspell
 avx
 dirac
 directfb
 djvu
 faac
 fbcon
 fbcondecor
 ffmpeg
 fontconfig
 gstreamer
 ieee1394
 imagemagick
 introspection
 kdepim
 lame
 libass
 lzma
 matroska
 mmx
 mmxext
 natspec
 networkmanager
 postproc
 pulseaudio
 quicktime
 samba
 schroedinger
 semantic-desktop
 smp
 sqlite
 sse
 sse2
 sse3
 sse4
 ssse3
 symlink
 theora
 threads
 v4l
 v4l2
 vdpau
 webp
 X

Turned off flags:
 -3dnow
 -3dnowext
 -berkdb
 -crypt
 -cuda
 -cups
 -curl
 -debug
 -doc
 -gdbm
 -gnome
 -gnutls
 -gpg
 -gtk
 -gtk+
 -gtk3
 -handbook
 -hunspell
 -jit
 -ldap
 -libnotify
 -libproxy
 -llvm
 -perl
 -python
 -slang
 -startup-notification
 -systemd
 -vala
 -vlc
 -wallpapers
 -webkit
 -xinerama
fragmentor
()
Ответ на: комментарий от overmind88

Не слышал, но после непродолжительного гугления делаю вывод, что не особо нравится (слишком KISS).

intelfx ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.