LINUX.ORG.RU
решено ФорумTalks

Скорость Gentoo


0

0

Последнее время экспериментировал с ArchLinux и Gentoo. Оказалась, что на одинаковом железе оптимизированный Gentoo проигрывает дефолтному Arch'у в скорости. Оба дистрибутива x86_64. Ядро Генты самособранное, у Арча - дефолтное. CFLAGS Генты - "-O2 -pipe -march=native". Тесты: пакетный рендер в Блендере и запаковка/распаковка 200Mb данных. Т.к. это делалось для себя то после сравнения точные результаты я удалил. Результаты рендера я запомнил точно: Arch - 35 сек., Gentoo - 37 сек. Для архивации время не запомнил но там тоже немного победил Арч. Тесты проводились в цикле. Версии ПО - идентичные (размаскировал у Gentoo xorg, nvidia, blender). Чем такая ситуация может быть обусловлена? Я был уверен, что Gentoo будет быстрее Arch'а. Господа, ваше мнение?


Ответ на: комментарий от Sylvia

x86, gcc-4.4, graphite, firefox-3.6
подтверждаю, сегфолтится. Причём на чистом профиле - нормально работает, в safe-mode тоже запускается. Виной какое-то расширение, но я так и не отловил какое, забил, временно пользую chromium.

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

~x86 gcc-4.4.2 graphite лиса 3.6 - норм :)
нарисуй лучше какие флаги использовал из графита? :)

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

ладно, уговорили, сейчас пересоберу с графитом,

# quickpkg xulrunner mozilla-firefox
* Building package for net-libs/xulrunner-1.9.2 ... [ ok ]
* Excluded config: '/etc/gre.d/1.9.2.system.conf'
* www-client/mozilla-firefox-3.6: package was emerged with USE=-bindist!
* www-client/mozilla-firefox-3.6: it may not be legal to redistribute this.
* Building package for www-client/mozilla-firefox-3.6 ... [ ok ]

* Packages now in '/usr/portage/packages':
* net-libs/xulrunner-1.9.2: 16.3M
* www-client/mozilla-firefox-3.6: 1.1M

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

>Пересборка всего и вся ради мифического прироста скорости - абсурд.

+1

Профит Gentoo не в скорости. Никогда с этой точки зрения даже ситуацию не рассматривал :)

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

>последнее автомат сам включает

Нет:

# gcc -march=native -Q --help=target|grep sse
-mno-sse4       [включено]
-msse       [выключено]
-msse2       [выключено]
-msse2avx       [выключено]
-msse3       [выключено]
-msse4       [выключено]
-msse4.1       [выключено]
-msse4.2       [выключено]
-msse4a       [выключено]
-msse5       [выключено]
-msseregparm       [выключено]
-mssse3       [выключено]

balpc ~ # grep sse /proc/cpuinfo
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow vnmi flexpriority
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow vnmi flexpriority
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow vnmi flexpriority
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow vnmi flexpriority


И даже не автомат не включит. Только ручками.

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

>Но Арч ведь собран с generic x86_64 флагами для совместимости, так что в данном эксперименте можно флагами оптимизации компилятора вообще пренебреч. В таких условиях Gentoo должен быть хотябы НЕ МЕДЛЕННЕЕ.

А кто сказал, что GCC в вопросе оптимизации гарантированно выбирает лучший вариант? :) Только acovea и несколько суток экспериментов тебе помочь смогут.

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

acovea все-равно синтетика..

лучше просто не заморачиваться ) т.к. найти хорошее и безглючное абсолютно _для всего_ скорее всего не получится

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

>>собери лису с ... с графитом и прочими примочками

и будет падать сразу при запуске, как минимум на 32 битах


Что такое «Лиса с графитом»?

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

>x86, gcc-4.4, graphite, firefox-3.6

А, понял. А что оно даёт?

подтверждаю, сегфолтится


Ну, значит, пока подождём :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73
localhost megabaks #  gcc -march=native -Q --help=target|grep sse
  -mno-sse4                   		[выключено]
  -msse                       		[включено]
  -msse2                      		[включено]
  -msse2avx                   		[выключено]
  -msse3                      		[включено]
  -msse4                      		[выключено]
  -msse4.1                    		[включено]
  -msse4.2                    		[выключено]
  -msse4a                     		[выключено]
  -msse5                      		[выключено]
  -msseregparm                		[выключено]
  -mssse3                     		[включено]

разговор был о корке :)

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

вот с этим всем лис собирается

 CFLAGS="-O2 -march=core2 -mtune=core2 -pipe -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=3072 -ffast-math -floop-interchange -floop-block -floop-strip-mine -ftree-loop-distribution -findirect-inlining -fomit-frame-pointer -g0 -Wno-all"


CXXFLAGS="${CFLAGS}"
megabaks ★★★★
()
Ответ на: комментарий от megabaks

кстати да - у меня E7200@2.53 - может на других корках по-другому...

Сейчас на Q9440 (в 64 битах, выше пример - на 32-х) гляну.

Фигушки, то же самое:

# gcc -march=native -Q --help=target|grep sse
  -mno-sse4                   		[включено]
  -msse                       		[выключено]
  -msse2                      		[выключено]
  -msse3                      		[выключено]
  -msse4                      		[выключено]
  -msse4.1                    		[выключено]
  -msse4.2                    		[выключено]
  -msse4a                     		[выключено]
  -msse5                      		[выключено]
  -msseregparm                		[выключено]
  -mssse3                     		[выключено]

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

>~x86 gcc-4.4.2 graphite лиса 3.6 - норм :)

вот с этим всем лис собирается

И где же хваленый графит?:)

ЗЫ. x86, core2duo, gcc4.4.2: фаерфокс либо сегфолтится либо сигкиллится. Юзаю бинарную сборку. Тандерберд сегфолтится, но очень-очень редко.

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

>кстати, а какая версия GCC? у мну 4.4.2

На Q6600/x86 - 4.4.2
На Q9440/x86_64 - 4.3.4

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

~ :$firefox
Segmentation fault


что и требовалось доказать) лис как всегда в этом отношении стабилен, то есть стабильно падает )

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

>-mssse3 включает и младшие )

Ну, мне лениво было разбираться :) ... Да, действительно, включает.

KRoN73 ★★★★★
()

Кстати странная хрень. С включенным флагом custom-optimization xulrunner почему-то собирается со своими дефолтными флагами...

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

Tnx! А я думал, он включается -fgraphite-identity :(.

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

Сейчас собрал 3.6 - больше не сегфолтится. Ветка 3.5 сегфолтилась вся. Кроме может быть последних минорных релизов.

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

ну с этими флагами у меня и 3.5.х не сегфолтился

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

А если с чистым профилем? перемести куда-нибудь временно .mozilla и снова запусти.
Методом тыка нашёл какие расширения его роняют в моём случае.

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

-O2 -fomit-frame-pointer -g0 -march=pentium4 -mtune=core2 -msse2 -mfpmath=sse,387 -ftree-vectorize -ftree-loop-linear -floop-interchange -floop-block -floop-strip-mine -ftree-loop-distribution

Configure arguments
--enable-application=xulrunner --enable-optimize=-O2 --disable-installer --disable-pedantic --enable-crypto --with-system-jpeg --with-system-zlib --disable-updater --enable-pango --enable-svg --enable-system-cairo --disable-strip --disable-strip-libs --disable-install-strip --with-distribution-id=org.gentoo --enable-single-profile --disable-profilesharing --disable-profilelocking --enable-default-toolkit=cairo-gtk2 --disable-startup-notification --disable-debug --disable-tests --enable-elf-dynstr-gc --disable-gnomevfs --disable-gnomeui --with-default-mozilla-five-home=/usr/lib/xulrunner-1.9.2 --enable-application=xulrunner --disable-mailnews --disable-crashreporter --enable-image-encoder=all --enable-canvas --enable-default-toolkit=cairo-gtk2 --enable-oji --enable-mathml --enable-storage --enable-places --enable-safe-browsing --enable-jsd --enable-xpctools --disable-installer --disable-updater --disable-strip --disable-install-strip --enable-system-cairo --enable-system-hunspell --with-system-nspr --with-system-nss --enable-system-lcms --with-system-bz2 --disable-libnotify --disable-javaxpcom --disable-necko-wifi --enable-ogg --enable-wave --enable-extensions=default --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib

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

уже не стану проверять, падает - ну и пускай, соберу с 4.3.x с ним все работает

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

а если вот так?

Q6600/x86/4.4.2

# gcc -m32 -fverbose-asm -march=native -Q --help=target|grep sse
  -mno-sse4                   		[включено]
  -msse                       		[выключено]
  -msse2                      		[выключено]
  -msse2avx                   		[выключено]
  -msse3                      		[выключено]
  -msse4                      		[выключено]
  -msse4.1                    		[выключено]
  -msse4.2                    		[выключено]
  -msse4a                     		[выключено]
  -msse5                      		[выключено]
  -msseregparm                		[выключено]
  -mssse3                     		[выключено]

Q9440/x86_64/4.3.4

# gcc -m64 -fverbose-asm -march=native -Q --help=target|grep sse
  -mno-sse4                   		[включено]
  -msse                       		[выключено]
  -msse2                      		[выключено]
  -msse3                      		[выключено]
  -msse4                      		[выключено]
  -msse4.1                    		[выключено]
  -msse4.2                    		[выключено]
  -msse4a                     		[выключено]
  -msse5                      		[выключено]
  -msseregparm                		[выключено]
  -mssse3                     		[выключено]

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

на 64 битах не получится ) там графит себя ведет гораздо более стабильно,
сегфолты на графите - преимущество 32 битных систем)

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

так отличия у нас только вот в этом

 -mfpmath=sse,387 -ftree-vectorize -ftree-loop-linear 

вот их и надо винить в падении лИса, а не графит :)

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

или гсс не знает таких процов

Ну, я пока не видел в таком случае процов, которых бы GCC на тему sse знал :)

Вот P4 Prescott (sse2)/x86/4.3.4:

$ gcc -march=native -Q --help=target|grep sse
  -mno-sse4                   		[включено]
  -msse                       		[выключено]
  -msse2                      		[выключено]
  -msse3                      		[выключено]
  -msse4                      		[выключено]
  -msse4.1                    		[выключено]
  -msse4.2                    		[выключено]
  -msse4a                     		[выключено]
  -msse5                      		[выключено]
  -msseregparm                		[выключено]
  -mssse3                     		[выключено]

Кстати, надо бы на 4.4.2 переключить, а то для каких-то экспериментов на 4.3.4 переключался, а вернуть - забыл.

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

еще раз напишу о том что у меня стабильно ФФ падает, даже если просто собирать его GCC 4.4 без графита, аналогично с wine, приложения windows падают с ошибками памяти (world of warcraft как минимум, мелочь типа noip DUC20.exe не падает)

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

4.4.2 E7200

megabaks@localhost ~ $  gcc -march=native -Q --help=target|grep sse
  -mno-sse4                   		[выключено]
  -msse                       		[включено]
  -msse2                      		[включено]
  -msse2avx                   		[выключено]
  -msse3                      		[включено]
  -msse4                      		[выключено]
  -msse4.1                    		[включено]
  -msse4.2                    		[выключено]
  -msse4a                     		[выключено]
  -msse5                      		[выключено]
  -msseregparm                		[выключено]
  -mssse3                     		[включено]

:)

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

>4.4.3 released

# eix -e gcc
...
(4.4)   (~)4.4.1!s (~)4.4.2!s{tbz2}

Вот как обновится - так автоматом и у меня обновится.

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

тогда даже не знаю...
у меня вся система собрана с 4.4.2 и графитом ( даже ядро ) при этом ~x86
ни одного сегфолта, правда вином не балуюсь

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

возможно дело в том , что собрана именно ВСЯ система, в 4.4 есть небольшая ABI несовместимость (см CAVEATS http://gcc.gnu.org/gcc-4.4/changes.html) , может быть на ней и проявляется, я пока с 4.3.x собираю большую часть

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

>В Google Chrome ... и минимизация и максимизация окна быстрее.

Это как? Я думал, этим WM занимается, а не сама программа.

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