"-o3" Он вообще для чего-нибудь нужен?

Прочитал в документации gcc, что сабжевый флаг не рекомендуется использовать с gcc четвертой версии,т.к. производительность чуть ли не снижается. Сейчас пытаюсь перейти с убунту, компьютер будет в основном использоваться для gimp`а, qtCreator`а и рендеринга в блендере. Имеет ли смысл ставить с -o3 что-либо из вышеперечисленного?

http://www.gentoo.org/doc/en/

вроде gcc-4.4.1 собирает с

вроде gcc-4.4.1 собирает с -О3 нерабочие приложения, которые валятся с Segmentation failed.у меня у самого -O2 потому точно не скажу. в остальном читайте мануал. и в Интернете можно найти много статей по флагам оптимизации gcc и что они делают. скажу просто что безопасными флагами в большинстве считаются -02, и -03 использовать не рекомендуют, если не знаете зачем это нужно. ключевые слова я выделил, думаю поймете ;)

Хочешь меньше багов ставь -O2

Хочешь меньше багов ставь -O2 :)

Хочешь по-эксперементировать ставть -O3, тем более в генту флаги можно выставить и для конкретного ебилда :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Тема

можно про флаги для отдельного пакета подробней?

Засовываем в

Засовываем в /etc/portage/bashrc примерно следующее:

#!/bin/sh                            
# /etc/portage/bashrc                

if [ "$0" = "/usr/lib/portage/bin/ebuild.sh" ]; then
 
  eecho() {
      echo -ne ' \e[1;36m*\e[0m '
      echo "$*"
  }

   case "$*"  in
      # stay really quiet here.
      depend) : ;;
      *)
         if [ -e ${ROOT}/etc/portage/package.cflags ]; then
            save_IFS
            IFS=$'\n'
            for x in $(/bin/cat ${ROOT}/etc/portage/package.cflags); do
               unset IFS
               x="$(echo $x)"
               IFS=$'\n'
               if [ "${x:0:1}" != "#" ]; then
                  PKG="${x%%[$'\t\n ']*}"
                  if [ "$PKG" == "$CATEGORY/$PN" ]; then

                     if [ "$CFLAGS" != "${x/$PKG/}" ]; then
                        eecho "Using package.cflags entry for $CATEGORY/$PN"
                     fi
                     export CFLAGS="${x/$PKG/}"
                     export CXXFLAGS="${x/$PKG/}"

                  fi
               fi
            done
            restore_IFS
         fi

      ;;
   esac
fi

======================================================

Далее chmod +x /etc/portage/bashrc и в /etc/portage/package.cflags забиваем необходимые пакеты\флаги компиляции, примерно так:

x11-libs/cairo -s -O2 -march=native -pipe
dev-libs/glib  -s -O2 -march=native -pipe
dev-db/sqlite  -s -O3 -march=native -pipe

Радуемся!

Совет хороший, но несколько

Совет хороший, но несколько устаревший. man portage применительно к /etc/portage/env пояснит почему =)

,т.к. производительность чуть

,т.к. производительность чуть ли не снижается.

Сильно зависит от кода. Из за разворота циклов код может не влезать в кеш, вот и потеря производительности.

если же все линейно, то вполне ускоряет

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

У меня gcc-4.4.1 с -O3,

У меня gcc-4.4.1 с -O3, графитом и "ручными" LDFLAGS. Ну и флагами custom-cflags в make.conf. Зачем? Для красноглазия - новые впечатления там, ну и далее по тексту =).

Серьезных проблем встретил две: mplayer и wine (последний вообще 4.4.* не любит сильно-сильно). Они легко решаются при помощи /etc/portage/env.

Производительность мерял разве что пальцем по ветру, результат не однозначный

Можете скинуть свои флаги -

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

CFLAGS="-O3 -pipe

CFLAGS="-O3 -pipe -march=native -mtune=native -mfpmath=sse -floop-interchange -floop-strip-mine -floop-block"
CXXFLAGS="-O3 -pipe -march=native -mtune=native -mfpmath=sse -floop-interchange -floop-strip-mine -floop-block"
LDFLAGS="-Wl,--as-needed -Wl,--sort-common -Wl,-O1 -Wl,--hash-style=gnu"

CXXFLAGS="${CFLAGS}" проще

CXXFLAGS="${CFLAGS}" проще сделать в таком случае :)
К сожалению не могу использовать у себя native - так как собираю бинарные пакеты на сервере и потом ставлю везде, так как архитектуры везде разные (amd64, i686) то ничего не будет работать если его ставить.
А с LDFLAGS почитаю чего они делают, спасибо.

Угу, просто на одном из рц

Угу, просто на одном из рц портажа 2.2 наблюдались странные глюки и я поставил так как щас, а уже менять лень =)

Про лдфлагс: да понятно, что они делают, либо все ломают, либо игнорируются/фильтруются =) (шутко)

нужен, но не тебе. Флаг О3

нужен, но не тебе.
Флаг О3 оптимизирует, но не всегда оптимально. Т.е. Не каждая програма будет с ним работать быстрее. Проще всего скомпилить с ним то чем пользуешься и посмотреть стало ли быстрее. Если нет, или нет разницы, то лучше пользуй О2.
Если хочешь углубляться, то думаю, что man gcc тебе на все ответит (удачи в понимании :) )

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".