LINUX.ORG.RU

Вопрос по оптимизации бинарников


0

0

В одной статье прочитал, что (цитата):
>>Следующие флаги, весьма влияющие на производительность,
>>задают конкретный процессор для целевой машины: -mcpu=значение
>>или -march=значение. Различие между ними в том, что программа,
>>собранная с флагом -mcpu, будучи оптимизированной под заданный
>>в качестве значения "камень", сохраняет способность запуска на более
>>младших моделях, тогда как флаг -march заоптимизирует программу так,
>>что она сможет запуститься только на указанном процессоре или более
>>старшем.
Я пользуюсь Slackware, так там пакеты компилятся с флагами:
-O2 -march=i486 -mcpu=i686.
Не означает ли это, что (понятно дело) запустится на i486, а на i686
(Pentium III, Pentium IV) будет работать с i686 производительностью?
Или на Pentium III, Pentium IV будет все равно как i486?
Тогда какой смысл в опции -mcpu=i686?
anonymous

Это означает "не парься над всякой фигнёй". Ключики оптимизации подкручивать - детский сад, пусть этим придурки-гентушники занимаются, а взрослый, серёьзный человек возьмёт бинарник из дистрибутива и не будет напрягаться.

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

Согласен.
Мне и самому париться над этим влом.
Да только дело идет об ОЧЕНЬ нагруженных серверах и 
стоит вопрос выбора наиболее оптимизированного под
последнее железо дистрибутива.
Я потому и спрашиваю, что бы не самому компилять дистриб,
а выбрать наиболее подходящий из бинарных.
Так как насчет на вопрос ответить?

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

>Согласен. Мне и самому париться над этим влом. Да только дело идет об ОЧЕНЬ нагруженных серверах и стоит вопрос выбора наиболее оптимизированного под последнее железо дистрибутива. Я потому и спрашиваю, что бы не самому компилять дистриб, а выбрать наиболее подходящий из бинарных. Так как насчет на вопрос ответить?

Лучше забей тогда на слаку... Ставь на сервер чтонибудь типа FreeBSD, или Gentoo, если тебе так оптимизация важна... Хотя ИМХО для сервера, нет ничего лучше дебиана без всякого самосбора

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

В догонку.
Кстати, если кто знает, какое ядро лучше (быстрее, устойчивее) для
роутинга пакетов: 2.4.X или 2.6.X?

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

устойчивее - 2.4.X

быстрее наверно 2.6.X

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

Сдается мне, что на i386 разницы в этих опция нету. Вот пример из man для arm и i386

       -mcpu=name
           This specifies the name of the target ARM processor.  GCC uses this name to determine what kind of instructions it can emit when generating
           assembly code.  Permissible names are: arm2, arm250, arm3, arm6, arm60, arm600, arm610, arm620, arm7, arm7m, arm7d, arm7dm, arm7di, arm7dmi,
           arm70, arm700, arm700i, arm710, arm710c, arm7100, arm7500, arm7500fe, arm7tdmi, arm8, strongarm, strongarm110, strongarm1100, arm8, arm810,
           arm9, arm9e, arm920, arm920t, arm940t, arm9tdmi, arm10tdmi, arm1020t, xscale.


       -march=name
           This specifies the name of the target ARM architecture.  GCC uses this name to determine what kind of instructions it can emit when generat-
           ing assembly code.  This option can be used in conjunction with or instead of the -mcpu= option.  Permissible names are: armv2, armv2a,
           armv3, armv3m, armv4, armv4t, armv5, armv5t, armv5te.


       -mcpu=cpu-type
           Tune to cpu-type everything applicable about the generated code, except for the ABI and the set of available instructions.  The choices for
           cpu-type are i386, i486, i586, i686, pentium, pentium-mmx, pentiumpro, pentium2, pentium3, pentium4, prescott, nocona, k6, k6-2, k6-3,
           athlon, athlon-tbird, athlon-4, athlon-xp, athlon-mp, winchip-c6, winchip2 and c3.

           While picking a specific cpu-type will schedule things appropriately for that particular chip, the compiler will not generate any code that
           does not run on the i386 without the -march=cpu-type option being used.  i586 is equivalent to pentium and i686 is equivalent to pentiumpro.
           k6 and athlon are the AMD chips as opposed to the Intel ones.

       -march=cpu-type
           Generate instructions for the machine type cpu-type.  The choices for cpu-type are the same as for -mcpu.  Moreover, specifying -march=cpu-
           type implies -mcpu=cpu-type.



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