LinuxForum.Fans
Тема

Оптимизация

Автор: tyrnov 11 сообщений 4922 просмотров
#109771

Тут посмотрел какие флаги лучше применять для моего процессора make.conf был:

Показать
text

CFLAGS="-O1 -march=native -pipe"
CXXFLAGS="-O1 -march=native -pipe"
CHOST="x86_64-pc-linux-gnu"
MAKEOPTS="-j3"
USE="mmx sse sse2 sse3 3dnow -arts -ipv6 aac acpi alsa applet archive automount bash-completion beagle bluetooth cairo cdda consolekit cups dbus djvu dirac dri dri2 dvd encode epiphany eselect fam ffmpeg flac freetype fuse galago gedit  gphoto2 gpm ghostscript gtk gnome gnome-keyring gstreamer hal icq irc jabber jpeg -joystick -qt3support -qt3 -qt4 -kde -ldap lm_sensors mpeg mp3 matroska mrim mono multilib multiuser nautilus  ncurses nptl opengl ogg pch samba sqlite slp tiff theora unicode udev usb v4l v4l2 vorbis win32codecs x264 xcomposite xv xvid xulrunner X"
LINGUAS="ru en"
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/ ftp://mirror.yandex.ru/gentoo-distfiles/"
SYNC="rsync://rsync2.ru.gentoo.org/gentoo-portage"
ALSA_CARDS="snd_hda_intel"
VIDEO_CARDS="nvidia"

source /var/lib/layman/make.conf

Хочу сделать:

Показать
text

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=k8 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j3"
USE="mmx sse sse2 sse3 3dnow -arts -ipv6 aac acpi alsa applet archive automount bash-completion beagle bluetooth cairo cdda consolekit cups dbus djvu dirac dri dri2 dvd encode epiphany eselect fam ffmpeg flac freetype fuse galago gedit  gphoto2 gpm ghostscript gtk gnome gnome-keyring gstreamer hal icq irc jabber jpeg -joystick -qt3support -qt3 -qt4 -kde -ldap lm_sensors mpeg mp3 matroska mrim mono multilib multiuser nautilus  ncurses nptl opengl ogg pch samba sqlite slp tiff theora unicode udev usb v4l v4l2 vorbis win32codecs x264 xcomposite xv xvid xulrunner X"
LINGUAS="ru en"
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/ ftp://mirror.yandex.ru/gentoo-distfiles/"
SYNC="rsync://rsync2.ru.gentoo.org/gentoo-portage"
ALSA_CARDS="snd_hda_intel"
VIDEO_CARDS="nvidia"

source /var/lib/layman/make.conf

А ну и информация о процессоре:

Показать
text

localhost tyrnov # cat /proc/cpuinfo 
processor    : 0
vendor_id    : AuthenticAMD
cpu family    : 15
model        : 43
model name    : AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
stepping    : 1
cpu MHz        : 2000.144
cache size    : 512 KB
physical id    : 0
siblings    : 2
core id        : 0
cpu cores    : 2
apicid        : 0
initial apicid    : 0
fpu        : yes
fpu_exception    : yes
cpuid level    : 1
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good pni lahf_lm cmp_legacy
bogomips    : 4000.28
TLB size    : 1024 4K pages
clflush size    : 64
cache_alignment    : 64
address sizes    : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp

processor : 1 vendor_id : AuthenticAMD cpu family : 15 model : 43 model name : AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ stepping : 1 cpu MHz : 2000.144 cache size : 512 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 1 initial apicid : 1 fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good pni lahf_lm cmp_legacy bogomips : 4000.08 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: ts fid vid ttp

Стоит ли это вобще делать? И если стоит как пересобирать всю систему после изменения make.conf

#109775

Ну, glxgears у меня подскочил раза в 3 после перехода с O1 на O2. Это то, что было заметно на глаз.
Переход прост: пересобрать system, потом world.

#109777

На версиях gcc-4.3 и выше, для людей не разбирающихся в опциях компиляции лучше, чем сам gcc wink (к ним я отношу и себя), считается «правилом хорошего тона» использовать

text

CFLAGS="-march=native -mtune=native -O2 -pipe"

Даже если вы планируете использовать только GTK-приложения, с большой долей вероятности рано или поздно для отдельных приложений вам придётся включить флаги qt3support qt3 qt4.
Пересобрать систему после подобных изменений можно примерно так:

text

emerge -b -1 gcc
emerge -b -1 glibc binutils
emerge -ebk system
emerge -ek world

Способ наверняка не самый оптимальный, описан в разных источниках хоть и по-разному, но суть примерно такая.
P.S. Почему бы не использовать MAKEOPTS="-j5"?

#109780
text

CFLAGS="-march=native -mtune=native -O2 -pipe"
CXXFLAGS="-march=native -mtune=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
MAKEOPTS="-j3"
USE="mmx sse sse2 sse3 3dnow -arts -ipv6 aac acpi alsa applet archive automount bash-completion beagle bluetooth cairo cdda consolekit cups dbus djvu dirac dri dri2 dvd encode epiphany eselect fam ffmpeg flac freetype fuse galago gedit  gphoto2 gpm ghostscript gtk gnome gnome-keyring gstreamer hal icq irc jabber jpeg -joystick -qt3support -qt3 -qt4 -kde -ldap lm_sensors mpeg mp3 matroska mrim mono multilib multiuser nautilus  ncurses nptl opengl ogg pch samba sqlite slp tiff theora unicode udev usb v4l v4l2 vorbis win32codecs x264 xcomposite xv xvid xulrunner X"
LINGUAS="ru en"
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/ ftp://mirror.yandex.ru/gentoo-distfiles/"
SYNC="rsync://rsync2.ru.gentoo.org/gentoo-portage"
ALSA_CARDS="snd_hda_intel"
VIDEO_CARDS="nvidia"

source /var/lib/layman/make.conf

Сделал такой.
Пересобирать надо вот так:

text

emerge -b -1 gcc
emerge -b -1 glibc binutils
emerge -ebk system
emerge -ek world
#109782
Lupo Alberto написал:
P.S. Почему бы не использовать MAKEOPTS="-j5"?
#109784
Lupo Alberto написал:

P.S. Почему бы не использовать MAKEOPTS="-j5"?

Вроде в хенбуке советуется ставить на 1 больше чем количество ядер проца у меня их два

#109786
tyrnov написал:
Вроде в хенбуке советуется ставить на 1 больше чем количество ядер проца у меня их два

Ну да, это я информацию о вашем процессоре невнимательно просмотрел :(

#109789

Ну тогда начну пересобирать посмотрю будет ли лучше. Кстати примерно сколько может занять по времени? Ну и тему можно считать решенной

#109869
Lupo Alberto написал:
text

emerge -b -1 gcc
emerge -b -1 glibc binutils
emerge -ebk system
emerge -ek world

А что значат флаги -b -1 -ebk -ek а лучше даже где про это можно почитать хорошо если на русском если нет на русском постараюсь понять и на английском

#109874

tyrnov,
-b — создавать бинарные пакеты, в данном случае используется, чтобы не пересобирать, а сразу установить предварительно собранный пакет, при выполнении последующих команд emerge -ebk system и emerge -ek world;
-1 — не добавлять запись об установленном пакете в world-файл;
-k — если в /usr/portage/packages есть бинарная сборка данной версии данного пакета, устанавливать именно её.
-e — переустанавливает целевой пакет и его зависимости, как будто они ещё не установлены.

В данном случае, последовательность команд, делает следующее:
— пересобирает с созданием бинарного пакета gcc,
— пересобирает с созданием бинарного пакета glibc, binutils,
— пересобирает system, устанавливая предварительно собранные бинарные пакеты gcc, glibc, binutils,
— пересобирает world, устанавливая предварительно собранные бинарные пакеты.

tyrnov написал:
де про это можно почитать хорошо если на русском если нет на русском постараюсь понять и на английском

Проще всего читать в первоисточнике wink

text

man emerge
#109875

Спасибо теперь все ясно стало

Войдите или зарегистрируйтесь, чтобы ответить.