LINUX.ORG.RU

Оптимизация под i686


0

0

С какими флагами лучше всего собирать пакеты под сферический i686 в вакууме? Какие могут быть при этом грабли? Хочется сохранить вменяемую переносимость между современными процессорами и при этом получить от них что-то кроме тепла.

★★★★★

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

>i686 - далеко не современный процессор

Сейчас у меня все пакеты для пущей совместимости со слакой собраны под сферический i486. Да и это

ndtimofeev@slackhome:~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 47
model name      : AMD Athlon(tm) 64 Processor 3200+
stepping        : 2
cpu MHz         : 2010.270
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
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 syscall nx mmxext fxsr_optlm 3dnowext 3dnow up pni lahf_lm
bogomips        : 4020.54
clflush size    : 64
power management: ts fid vid ttp tm stc

далеко не современный процессор.

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

>-O3 -march=i686 -mtune=i686 -mmmx -fomit-frame-pointer

ой не надо так делать...

так лучше:

-O2 -march=i686 -mtune=i686 -mmmx -fomit-frame-pointer

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

если под "сферический" современный процессор - то собирайте для pentium4+sse2


-O2 -fomit-frame-pointer -march=pentium4 -mmmx -msse2 -mfpmath=sse

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

Меня несколько смущает то что я понятия не имею зачем скажем нужен флаг -fomit-frame-pointer. Где можно поглядеть назначение флагов?

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

man gcc

-fomit-frame-pointer

дает выигрыш в производительности до 15% , за счет того что убирается счетчик,
отрицательное влияние в том что дебаг такой программы с помощью gdb будет значительно затруднен, для сборок релиз версий - очень желательно использовать этот флажок, если планируется дебаг - нет

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

>если под "сферический" современный процессор - то собирайте для pentium4+sse2

>-O2 -fomit-frame-pointer -march=pentium4 -mmmx -msse2 -mfpmath=sse

оптимизация под p4 подразумевает большие значения выравнивания (из-за особенностей оптимизации под длинный конвейер p4) - что лишь бесполезно раздует код, sse отсекает атлоны, sse2 - axp, -fomit-frame-pointer часто тоже лишь просто раздувает код. поэтому -O2 -march=i686 достаточно.

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

вот так и получается что когда майнтейнер пакета хочет собрать оптимизированый пакет под современный процессор для 32 бит, выходит что всё что реально можно использовать -O2 -march=i686 -fomit-frame-pointer
причем последний еще и не везде

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