LINUX.ORG.RU
ФорумTalks

помешательство на оптимизации

 , ,


0

3

Всем доброго времени суток.
Сейчас на ноутбуке стоит арч i686 c таким cpu и 2 gb озу

AMD Athlon(tm) II Dual-Core M300
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 pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a 3dnowprefetch osvw ibs skinit wdt hw_pstate npt lbrv svm_lock nrip_save
Есть ли смысл собрать gentoo из stage1 ?
или правильнее и проще будет поставить из stage3 и пересобрать мир ?
Пересобирутся ли бинарники с нужными мне флагами ?
сами Флаги
-O3 -pipe -march=amdfam10 -mcx16 -msahf -mpopcnt --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=1024 -mtune=amdfam10 -mno-3dnow -m3dnow -mmmx -msse -msse2 -msse3 -mfpmath=sse -msse4a -fomit-frame-pointer -m32 -m80387 -m96bit-long-double -mabm -malign-stringops -mcx16 -mfancy-math-387  -mfp-ret-in-387 -mfxsr -mglibc -mhard-float -mieee-fp -mlong-double-80 -mlzcnt -mno-sse4  -mfentry -mpopcnt -mprfchw -mpush-args -mred-zone -msahf -mstackrealign -mtls-direct-seg-refs
там много ненужного, наверное.
Или может поставить арч x86_64 - там вроде во всех пакетах sse2 из коробки. И можно ли пересобрать нынешний арч с live usb например с вышеперечисленными флагами, со всем софтром вроде хромиума?

★★★★★

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

прироста в скорости открытии страничек в хромиуме не будет ?
менюшки в xfce быстрее открываться не станут ?
знаю что нет, но всё равно хочется выбрать лучший вариант,попробовать и убедиться что всё напрасно и спокойно кушать дальше свой бинарный i686

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

прироста в скорости открытии страничек в хромиуме не будет ?
менюшки в xfce быстрее открываться не станут ?

В любом случае ты на глаз ничего не заметишь.

Akamanah ★★★★★
()

Есть ли смысл собрать gentoo из stage1 ?
или правильнее и проще будет поставить из stage3 и пересобрать мир ?

Пофиг, всё равно же пересоберётся весь мир.

Пересобирутся ли бинарники с нужными мне флагами ?

Теоретически в идеале да. Но, возможны нюансы. Зависит от сырости используемого компилятора и самого кода.

-O3

Не стоит. Серьёзно.
Обычно -O2 -pipe -native за глаза. Всю остальную простыню под нож. Компиляторы нынче умные, сами разберутся лучше тебя, как именно им собирать.

imul ★★★★★
()

Бывают люди, которые не могут играть в компьютерные игры без читов. Они становятся инвалидами, в определённом смысле: в реальной жизни вечно ищут какие-то «лайфхаки» и просто халяву, а в линуксах — компиляют генту.

quiet_readonly ★★★★
()

Gentoo брать из stage3. С -O3 по умолчанию я бы был поосторожнее.

Pinkbyte ★★★★★
()

Поставьте stage3 и сделайте emerge world.

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

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

прироста в скорости открытии страничек в хромиуме не будет ?
менюшки в xfce быстрее открываться не станут ?

нет

знаю что нет,

к чему тогда эта тема?

но всё равно хочется выбрать лучший вариант,попробовать и убедиться что всё напрасно и спокойно кушать дальше свой бинарный i686

Имеется смысл в подобном тюнинге — только оптимизация нескольких пакетов. В остальном же стабильность намного более правильное направление. Зачем тебе программа, которая падает в корку на 3% быстрее, чем могла бы падать без оптимизации?

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

в линуксах — компиляют генту.

Почему-то вспомнился старый PHP, который на генте/слаке давал +25% производительности из-за кастомной сборки.

Сейчас конечно таких значений уже не выжмешь, но всё же... Да и предпочитаю не иметь в системе мертвым грузом неиспользуемое говно.

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

Ты бы поосторожнее с выводами и обобщениями. :D

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

libreoffice

не нужно
только чистая ось + chromium

под свои нужны я пробовал chrome os, но оно сырое и не готово.

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

Компиляторы нынче умные, сами разберутся

вывод gcc по -native меня не очень обнадёживает.
хотя может Вы и правы.

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

без хлама

Зависит от качества и количества хлама.

CYB3R ★★★★★
()

Нет.

Купи SSD под систему и успокойся. Больше никаким способом получить сильный буст по скорости в наше время невозможно.

yu-boot ★★★★
()
Ответ на: комментарий от quiet_readonly

Нет! Ты не понимаешь! Собирают вредители и идиоты, с -O0!

:)

yu-boot ★★★★
()
Ответ на: комментарий от quiet_readonly

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

Далеко не всегда это так. Особенно это касается товарищей, разрабатывающих под CentOS с древним gcc, где о таких флагах еще не слышали.

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

вывод gcc по -native меня не очень обнадёживает.

прозреваю -Q --help=*
потому и такой результат

megabaks ★★★★
()
Ответ на: комментарий от AiFiLTr0
... -mno-3dnow -m3dnow ...

быть или не быть...

А я подумал: ... не любит, любит, ...

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

В любом случае ты на глаз ничего не заметишь.

Это утверждение ложно.
Пишу с Pentium-4 под гентой.

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

уж лучше собрать chromium c нужными флагами или оставить как есть.

Вот уж где-где, а в хроме гугловцы куда лучше знают про флаги оптимизации.

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

Вот уж где-где, а в хроме гугловцы куда лучше знают про флаги оптимизации.

они собирают chromium ?
они собирают его с флагами под мой конкретный cpu ?

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

fixed

-O3 -pipe -march=amdfam10 -mcx16 -msahf -mpopcnt --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=1024 -mtune=amdfam10  -m3dnow -mmmx -msse -msse2 -msse3 -mfpmath=sse -msse4a -fomit-frame-pointer -m32 -m80387 -m96bit-long-double -mabm -malign-stringops -mcx16 -mfancy-math-387  -mfp-ret-in-387 -mfxsr -mglibc -mhard-float -mieee-fp -mlong-double-80 -mlzcnt   -mpopcnt -mprfchw -mpush-args -mred-zone -msahf -mstackrealign -mtls-direct-seg-refs

smilessss ★★★★★
() автор топика
Ответ на: комментарий от smilessss
sh scripts/gcc-flags -march=amdfam10
-fasynchronous-unwind-tables
-fauto-inc-dec
-fbranch-count-reg
-fcommon
-fdelete-null-pointer-checks
-fdwarf2-cfi-asm
-fearly-inlining
-feliminate-unused-debug-types
-ffunction-cse
-fgcse-lm
-fident
-finline-functions-called-once
-fira-share-save-slots
-fira-share-spill-slots
-fivopts
-fkeep-static-consts
-fleading-underscore
-fmath-errno
-fmerge-debug-strings
-fmove-loop-invariants
-fpcc-struct-return
-fpeephole
-fprefetch-loop-arrays
-fsched-critical-path-heuristic
-fsched-dep-count-heuristic
-fsched-group-heuristic
-fsched-interblock
-fsched-last-insn-heuristic
-fsched-rank-heuristic
-fsched-spec
-fsched-spec-insn-heuristic
-fsched-stalled-insns-dep
-fshow-column
-fsigned-zeros
-fsplit-ivs-in-unroller
-fstrict-volatile-bitfields
-ftrapping-math
-ftree-cselim
-ftree-forwprop
-ftree-loop-if-convert
-ftree-loop-im
-ftree-loop-ivcanon
-ftree-loop-optimize
-ftree-parallelize-loops=
-ftree-phiprop
-ftree-pta
-ftree-reassoc
-ftree-scev-cprop
-ftree-slp-vectorize
-ftree-vect-loop-version
-funit-at-a-time
-funwind-tables
-fvar-tracking
-fvar-tracking-assignments
-fvect-cost-model
-fzero-initialized-in-bss
-m32
-m3dnow
-m80387
-m96bit-long-double
-mabm
-maccumulate-outgoing-args
-malign-stringops
-mcx16
-mfancy-math-387
-mfp-ret-in-387
-mglibc
-mieee-fp
-mmmx
-mno-red-zone
-mno-sse4
-mpopcnt
-mpush-args
-msahf
-msse
-msse2
-msse3
-msse4a
-mtls-direct-seg-refs

найди лишние флаги в своём месиве :3

megabaks ★★★★
()
Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от megabaks

лучше запихну эти :3

sh scripts/gcc-flags

на все семейства есть скрипты в этой волшебной папке scripts ?

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

это не волшебная папка - это просто скрипт, который парсит выхлоп gcc

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

я уже давно не ковырял icc - потому не помню
но xSSE* я бы таки указал вместо -msse*

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

по сравнению с арчей x86_64 никаких изменений ты не заметишь.

Разве что для математики, если предварительно заморочишься с чтением манов по правильному приготовлению

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

Ядро лучше арчевского - ещё поискать надо. Оно полностью модульное, отлично работает, и памяти ест ровно столько, сколько нужно. Выигрыш от самосборного ядра небольшой. Может 1 мбайт выиграешь по ОЗУ - зато придётся под любое оборудование ядро собирать. Сомнительный выигрыш, ИМХО.

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

а Я наоборот вырубал модульность
facepalm
ну не только его, то что жестко вкомпиленно тоже вырубал

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

Тогда найди в своём предыдущем потсе фундаментальную неточность.

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

Особенно это касается товарищей, разрабатывающих под CentOS с древним gcc, где о таких флагах еще не слышали.

Зато работа программы без этих флагов хотя бы частично протестирована разработчиками а про баги которые возникнут в оптимизированной версии они и знать не будут и исправлять долго не станут.

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

а если ещё ядро пересобрать без хлама, сколько озу высвободится ?

Судя по выводу

lsmod|awk '{n+=$2}END{print n}'
в моём арчике - разница может быть аж в единицах или десятке-другом мегабайт. Ядра никогда не пересобирал за ненадобностью, т.к. пользуюсь модульными. Поэтому мог что-то не учесть.

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

Я сейчас тоже юзаю модульное
А если всё вкомпилить в ядро, отказаться от лишних модулей\от initramfs то будет профит ?

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

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

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

Адекватный апстрим понимает, что, рано или поздно, такую проблему придется фиксить и старается пофиксить ее по возможности пораньше.

Ну и не забываем про Safe CFLAGS. Нет смысла фиксить что-то в программе, если она собрана с реально безумными экспериментальными флагами, поведение которых может измениться в будущих версиях gcc.

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