View previous topic :: View next topic |
Author |
Message |
nerff n00b
Joined: 20 Feb 2005 Posts: 50 Location: Novosibirsk
|
Posted: Mon May 02, 2005 6:20 am Post subject: Оптимизация бинарников |
|
|
Доброго времени суток!
Задался я ускорением работы домашней машинки и решил поиграться с компилятором, дабы выжать все, что только возможно. (Когда все нормально работает - русский человек начинает оптимизировать все, что только можно - это наверное на уровне генокода)
При флагах:
CFLAGS="-march=pentium4 -Os -fforce-addr -pipe -ffast-math -mfpmath=sse -mmmx -msse -msse2 -fomit-frame-pointer" наблюдается ощутимое ускорение работы.
При -march=prescott откомпилированное ядро периодически теряет /dev/null
(cat /proc/cpuinfo не показывает sse3 - надо архитектуру почитать наверное)
При -mfpmath=sse,387 многие вещи не компилируются вообще
При O3 - ускорение настолько незначительно, что о нем можно забыть
Машинка пентиум4-3000, 1024 памяти, gcc 3.3.5
Вопрос следующий - кто пытался (и успешно) заниматься чем-то подобным?
Что помогло? Что дает ускорение работы в плане оптимизации бинарников, а не скажем отключения сервисов и параллельного старта, etc? |
|
Back to top |
|
|
viy Veteran
Joined: 03 Jul 2004 Posts: 1580 Location: Riga, Latvia
|
Posted: Mon May 02, 2005 6:33 am Post subject: |
|
|
Каким образом ты замеряешь скорость работы бинарников? Каким образом сравниваешь? Как реагируют другие прикладные программы на твою оптимизацию, скажем броузер?
И в продолжении: чем ты занимаешся по большей части на своей домашней машине? Будет ли иметь смысл такая оптимизация для большинства пикладух, что ты используешь? |
|
Back to top |
|
|
hermes_jr l33t
Joined: 26 Feb 2004 Posts: 701 Location: Moscow, Russia
|
Posted: Mon May 02, 2005 8:57 am Post subject: Re: Оптимизация бинарников |
|
|
nerff wrote: |
При -march=prescott откомпилированное ядро периодически теряет /dev/null
(cat /proc/cpuinfo не показывает sse3 - надо архитектуру почитать наверное)
|
Вот кстати меня тоже этот вопрос интересует. На iXBT написано что прескоты набор инструкций sse3 поддерживают, я особо не вчитывался, но ничего типа "не все йогурты одинаково полезны" (не все прескоты поддерживают sse3) не нашёл. А если вдруг это так и есть, то -march=prescott получается только вредит
Вощим если найдёшь инфу, поделись пжалста |
|
Back to top |
|
|
WI n00b
Joined: 27 Jan 2005 Posts: 53
|
Posted: Mon May 02, 2005 11:53 am Post subject: Re: Оптимизация бинарников |
|
|
Прежде чем выставлять флаги оптимизации, и тратить время на компиляцию
неплохо было бы ознакомиться с воздействием оных на результат.
Помогает man gcc но при соответсвующем знании английского. Русского описания на gcc не встречал (возможно искал плохо |
|
Back to top |
|
|
cerebrum Tux's lil' helper
Joined: 10 Jan 2005 Posts: 77 Location: Russia
|
Posted: Mon May 02, 2005 12:21 pm Post subject: |
|
|
да фсё нормалёк с prescott-ами!!! У меня селерончик в 2.4 - на 2004.3+2005.0 - собирал со stage1 немного поигравшись с ebuilds добился чтоб компилер стал 3.4.2...
---------------------------------------------
CFLAGS="-O3 -march=prescott -mtune=prescott -mmmx -msse -msse2 -msse3 -ffast-math -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"
--------------------------------------------
И ОФИГЕННО ФСЁ РАБОТАЕТ!!! |
|
Back to top |
|
|
nerff n00b
Joined: 20 Feb 2005 Posts: 50 Location: Novosibirsk
|
Posted: Mon May 02, 2005 4:50 pm Post subject: prescott |
|
|
На самом деле мне это надо - не в том дело, что на домашней машинке работает что-то критичнее squid'a, а в том, что на ней обкатываются проекты систем для клиентов. Это попытка найти баланс между надежностью работы и скоростью.
Единственная инструкция, реально ускоряющая работу программ на моей машине это -mfpmath=sse. Причем это заметно на глаз - раза в 1.5. Я не имею желания заниматься копеечными вещами в 0.3% и запускать бенчмарки когда не могу отличить сам в какую сторону понесло систему.
Я собственно и спрашивал о таких вещах - что реально ускоряет систему и это можно различить невооруженным глазом? Кто использует например W etc?
Вообще, я читал gcc.gnu.org, в бытность студентомами писали простенькие компиляторы, но тут я считаю просто необходимо спросить у общественности |
|
Back to top |
|
|
YD Guru
Joined: 30 Oct 2004 Posts: 466 Location: Riga, Latvia
|
Posted: Mon May 02, 2005 5:05 pm Post subject: |
|
|
cerebrum wrote: |
CFLAGS="-O3 -march=prescott -mtune=prescott -mmmx -msse -msse2 -msse3 -ffast-math -fomit-frame-pointer -pipe"
|
Зачем? -march=prescott подразумевает эти флаги. На работе на P4 2.8E стоит с -O2 и некоторыми опциями из -O3. Проблем не возникает (были, но то было связано с битым RAM). |
|
Back to top |
|
|
nerff n00b
Joined: 20 Feb 2005 Posts: 50 Location: Novosibirsk
|
Posted: Mon May 02, 2005 5:10 pm Post subject: |
|
|
Quote: | Прежде чем выставлять флаги оптимизации, и тратить время на компиляцию
неплохо было бы ознакомиться с воздействием оных на результат.
Помогает man gcc но при соответсвующем знании английского. Русского описания на gcc не встречал (возможно искал плохо |
Это не Window$ - у меня есть дурацкая привычка переставлять сервера посреди рабочего дня по ssh - никто еще ничего не заметил за 2 года. Так что тратить время на компиляцию - я не трачу, все идет параллельно или в фоне. Не надо думать, что я сижу и 4 часа тупо гляжу на бегущий вывод компилятора.
С воздействием на результат (теоретически, с помощью man gcc и gcc.gnu.org) ознакомлен. Теория не всегда подтверждается практикой, поэтому попросил уважаемую общественность поделиться практическими выводами. Например про -mfpmath=sse,387, который "теоретически" должен ускорять работу я написал в начале треда.
Соответствующее знание английского имеется, я его изучал вторым языком. Первым - разговорную латынь.
Надеюсь, я ответил на все вопросы. Прошу прощения, если что не так. |
|
Back to top |
|
|
chiko n00b
Joined: 22 Jan 2004 Posts: 52 Location: Achinsk, Krasnoyarsky kray, Russia
|
Posted: Tue May 03, 2005 3:56 am Post subject: |
|
|
Напишите плиз что изменилось настолько, что видно невооруженным взглядом? Апач с РНР быстрее генерит странички? MySQL шустрее делает серию селектов? Иксы грузятся на n сек. реще?
ЧТО собственно так радует? _________________ Athlon-XP 1900+
Fluxbox 0.99 |
|
Back to top |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Tue May 03, 2005 6:07 am Post subject: |
|
|
Да, сорри за оффтоп (хотя, не совсем оффтоп, т.к. это тоже к оптимизации), но может кто поделится, есть ли смысл врубать nptl?
Точнее, вопрос даже не в этом, а в:
1) много-ли глюков наловишь с него и несовместимостей?
2) виден ли реальный прирост? (по идее, должен быть) |
|
Back to top |
|
|
bukazoid Tux's lil' helper
Joined: 21 Jan 2005 Posts: 86
|
Posted: Fri May 06, 2005 12:41 pm Post subject: |
|
|
hi ALL
app-benchmarks/acovea
пробовали ?
и что показует ? |
|
Back to top |
|
|
YD Guru
Joined: 30 Oct 2004 Posts: 466 Location: Riga, Latvia
|
Posted: Fri May 06, 2005 10:42 pm Post subject: |
|
|
ManJak wrote: | Да, сорри за оффтоп (хотя, не совсем оффтоп, т.к. это тоже к оптимизации), но может кто поделится, есть ли смысл врубать nptl?
Точнее, вопрос даже не в этом, а в:
1) много-ли глюков наловишь с него и несовместимостей?
2) виден ли реальный прирост? (по идее, должен быть) |
Вот ниразу не сталкивался с проблемами из-за nptl. По скорости значительно быстрее fork'a (где-то видел сравнительные тесты). Поставил апаче с mpm-worker (~x86). Стабильно пашет. Вообще использую nptlonly. |
|
Back to top |
|
|
WI n00b
Joined: 27 Jan 2005 Posts: 53
|
Posted: Thu May 12, 2005 1:12 pm Post subject: |
|
|
nerff wrote: |
Это не Window$ - у меня есть дурацкая привычка переставлять сервера посреди рабочего дня по ssh - никто еще ничего не заметил за 2 года. |
Вредная привычка, однако. Вам здорово везет .
По поводу сабжа http://gazette.linux.ru.net/lg88/piszcz.html - интересный опыт с ядром. Автор пытался выяснить влияние флагов.
Из собственных наблюдений:
Реально (видно на глаз) производительность поднимается за счет заточки под камень, практически на всех приложениях. Оптимизация операций с плавающей точкой (типа -msse ) - мало влияет на скорость строковых операций, а утилиты кодирования видео стали у меня шевелиться заметно шустрей. В общем и целом опции действительно работают так как писано в мане, просто в некоторых случаях они излишни, а иногда даже дают обратный эффект. Авторы многих приложений в доках указывают какие флаги оптимизации стоит включить для получения лучших показателей, а какие включать крайне нежелательно. Некоторые инсталляторы забивают на практически на все флаги и точат так как автор прописал.
Очень сильно помогает "облегчение" приложения. Большинство написаны так что при выкидывании ненужной фичи снимается куча ненужных проверок. После жесткой правки ебилда (выкинул всякую ерунду и поставил то что надо) мой апач на глаз шустрее стал бегать (реально измерить теперь невозможно, но жалоб больше нет) .
<имхо>
Получить "золотой" набор оптимизирующих флагов на все случаи жизни практически невозможно.
Выжать 90% от максимума производительности позволяют два (три ?) всем известных флага.
Трата времени - это поиск оставшихся 10% там, где это не критично, а там где это критично - пора покупать новую железку
</имхо>
ЗЫ
Ни в коей мере не хотелось поставить под сомнение личные качества nerff,
Приношу извинения за предоставленную мной возможность так подумать |
|
Back to top |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Thu May 12, 2005 2:38 pm Post subject: |
|
|
WI wrote: | nerff wrote: |
Это не Window$ - у меня есть дурацкая привычка переставлять сервера посреди рабочего дня по ssh - никто еще ничего не заметил за 2 года. |
Вредная привычка, однако. Вам здорово везет .
По поводу сабжа http://gazette.linux.ru.net/lg88/piszcz.html - интересный опыт с ядром. Автор пытался выяснить влияние флагов.
Из собственных наблюдений:
Реально (видно на глаз) производительность поднимается за счет заточки под камень, практически на всех приложениях. Оптимизация операций с плавающей точкой (типа -msse ) - мало влияет на скорость строковых операций, а утилиты кодирования видео стали у меня шевелиться заметно шустрей. В общем и целом опции действительно работают так как писано в мане, просто в некоторых случаях они излишни, а иногда даже дают обратный эффект. Авторы многих приложений в доках указывают какие флаги оптимизации стоит включить для получения лучших показателей, а какие включать крайне нежелательно. Некоторые инсталляторы забивают на практически на все флаги и точат так как автор прописал.
Очень сильно помогает "облегчение" приложения. Большинство написаны так что при выкидывании ненужной фичи снимается куча ненужных проверок. После жесткой правки ебилда (выкинул всякую ерунду и поставил то что надо) мой апач на глаз шустрее стал бегать (реально измерить теперь невозможно, но жалоб больше нет) .
<имхо>
Получить "золотой" набор оптимизирующих флагов на все случаи жизни практически невозможно.
Выжать 90% от максимума производительности позволяют два (три ?) всем известных флага.
Трата времени - это поиск оставшихся 10% там, где это не критично, а там где это критично - пора покупать новую железку
</имхо>
ЗЫ
Ни в коей мере не хотелось поставить под сомнение личные качества nerff,
Приношу извинения за предоставленную мной возможность так подумать |
RESPECT!!!
ИМХО, тоже весьма рискованный выбор (еще посреди дня), хотя автор не уточнил какого
24 часа в сутках & 12 часовых поясов & 8 часов рабочего дня = +/- |
|
Back to top |
|
|
WI n00b
Joined: 27 Jan 2005 Posts: 53
|
Posted: Wed May 18, 2005 10:50 am Post subject: |
|
|
Кому это еще интересно, утилита автоподбора оптимальных флагов описана здесь :
http://ru.gentoo-wiki.com/HOWTO_Использование_CFLAGS_для_оптимизации_собранных_программ
В силу вышесказанного лично я сомневаюсь в ее необходимости. |
|
Back to top |
|
|
iTux_Tux n00b
Joined: 08 Jun 2005 Posts: 13 Location: On PC
|
Posted: Mon Jun 20, 2005 9:50 am Post subject: |
|
|
Поможите люди добрые
Ставлю с первого стэйджа, на athlon xp 2700+/512MB DDR-333/60GB Винт...
Какие флаги ставить, чтобы НЕ ГЛЮЧИЛО и ЛЕТАЛО???
Спасибо за ранее... |
|
Back to top |
|
|
|