Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Оптимизация бинарников
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
nerff
n00b
n00b


Joined: 20 Feb 2005
Posts: 50
Location: Novosibirsk

PostPosted: Mon May 02, 2005 6:20 am    Post subject: Оптимизация бинарников Reply with quote

Доброго времени суток!

Задался я ускорением работы домашней машинки и решил поиграться с компилятором, дабы выжать все, что только возможно. (Когда все нормально работает - русский человек начинает оптимизировать все, что только можно - это наверное на уровне генокода)

При флагах:
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
View user's profile Send private message
viy
Veteran
Veteran


Joined: 03 Jul 2004
Posts: 1580
Location: Riga, Latvia

PostPosted: Mon May 02, 2005 6:33 am    Post subject: Reply with quote

Каким образом ты замеряешь скорость работы бинарников? Каким образом сравниваешь? Как реагируют другие прикладные программы на твою оптимизацию, скажем броузер?

И в продолжении: чем ты занимаешся по большей части на своей домашней машине? Будет ли иметь смысл такая оптимизация для большинства пикладух, что ты используешь?
Back to top
View user's profile Send private message
hermes_jr
l33t
l33t


Joined: 26 Feb 2004
Posts: 701
Location: Moscow, Russia

PostPosted: Mon May 02, 2005 8:57 am    Post subject: Re: Оптимизация бинарников Reply with quote

nerff wrote:

При -march=prescott откомпилированное ядро периодически теряет /dev/null :(
(cat /proc/cpuinfo не показывает sse3 - надо архитектуру почитать наверное)

Вот кстати меня тоже этот вопрос интересует. На iXBT написано что прескоты набор инструкций sse3 поддерживают, я особо не вчитывался, но ничего типа "не все йогурты одинаково полезны" (не все прескоты поддерживают sse3) не нашёл. А если вдруг это так и есть, то -march=prescott получается только вредит :?
Вощим если найдёшь инфу, поделись пжалста ;)
Back to top
View user's profile Send private message
WI
n00b
n00b


Joined: 27 Jan 2005
Posts: 53

PostPosted: Mon May 02, 2005 11:53 am    Post subject: Re: Оптимизация бинарников Reply with quote

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

Помогает man gcc но при соответсвующем знании английского. Русского описания на gcc не встречал (возможно искал плохо :)
Back to top
View user's profile Send private message
cerebrum
Tux's lil' helper
Tux's lil' helper


Joined: 10 Jan 2005
Posts: 77
Location: Russia

PostPosted: Mon May 02, 2005 12:21 pm    Post subject: Reply with quote

да фсё нормалёк с 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
View user's profile Send private message
nerff
n00b
n00b


Joined: 20 Feb 2005
Posts: 50
Location: Novosibirsk

PostPosted: Mon May 02, 2005 4:50 pm    Post subject: prescott Reply with quote

На самом деле мне это надо - не в том дело, что на домашней машинке работает что-то критичнее squid'a, а в том, что на ней обкатываются проекты систем для клиентов. Это попытка найти баланс между надежностью работы и скоростью.
Единственная инструкция, реально ускоряющая работу программ на моей машине это -mfpmath=sse. Причем это заметно на глаз - раза в 1.5. Я не имею желания заниматься копеечными вещами в 0.3% и запускать бенчмарки когда не могу отличить сам в какую сторону понесло систему.
Я собственно и спрашивал о таких вещах - что реально ускоряет систему и это можно различить невооруженным глазом? Кто использует например W etc?
Вообще, я читал gcc.gnu.org, в бытность студентомами писали простенькие компиляторы, но тут я считаю просто необходимо спросить у общественности
Back to top
View user's profile Send private message
YD
Guru
Guru


Joined: 30 Oct 2004
Posts: 466
Location: Riga, Latvia

PostPosted: Mon May 02, 2005 5:05 pm    Post subject: Reply with quote

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
View user's profile Send private message
nerff
n00b
n00b


Joined: 20 Feb 2005
Posts: 50
Location: Novosibirsk

PostPosted: Mon May 02, 2005 5:10 pm    Post subject: Reply with quote

Quote:
Прежде чем выставлять флаги оптимизации, и тратить время на компиляцию
неплохо было бы ознакомиться с воздействием оных на результат.

Помогает man gcc но при соответсвующем знании английского. Русского описания на gcc не встречал (возможно искал плохо :)


Это не Window$ - у меня есть дурацкая привычка переставлять сервера посреди рабочего дня по ssh - никто еще ничего не заметил за 2 года. Так что тратить время на компиляцию - я не трачу, все идет параллельно или в фоне. Не надо думать, что я сижу и 4 часа тупо гляжу на бегущий вывод компилятора.

С воздействием на результат (теоретически, с помощью man gcc и gcc.gnu.org) ознакомлен. Теория не всегда подтверждается практикой, поэтому попросил уважаемую общественность поделиться практическими выводами. Например про -mfpmath=sse,387, который "теоретически" должен ускорять работу я написал в начале треда.

Соответствующее знание английского имеется, я его изучал вторым языком. Первым - разговорную латынь.

Надеюсь, я ответил на все вопросы. Прошу прощения, если что не так.
Back to top
View user's profile Send private message
chiko
n00b
n00b


Joined: 22 Jan 2004
Posts: 52
Location: Achinsk, Krasnoyarsky kray, Russia

PostPosted: Tue May 03, 2005 3:56 am    Post subject: Reply with quote

Напишите плиз что изменилось настолько, что видно невооруженным взглядом? Апач с РНР быстрее генерит странички? MySQL шустрее делает серию селектов? Иксы грузятся на n сек. реще?
ЧТО собственно так радует?
_________________
Athlon-XP 1900+
Fluxbox 0.99
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Tue May 03, 2005 6:07 am    Post subject: Reply with quote

Да, сорри за оффтоп (хотя, не совсем оффтоп, т.к. это тоже к оптимизации), но может кто поделится, есть ли смысл врубать nptl?
Точнее, вопрос даже не в этом, а в:
1) много-ли глюков наловишь с него и несовместимостей?
2) виден ли реальный прирост? (по идее, должен быть)
Back to top
View user's profile Send private message
bukazoid
Tux's lil' helper
Tux's lil' helper


Joined: 21 Jan 2005
Posts: 86

PostPosted: Fri May 06, 2005 12:41 pm    Post subject: Reply with quote

hi ALL
app-benchmarks/acovea
пробовали ?
и что показует ?
Back to top
View user's profile Send private message
YD
Guru
Guru


Joined: 30 Oct 2004
Posts: 466
Location: Riga, Latvia

PostPosted: Fri May 06, 2005 10:42 pm    Post subject: Reply with quote

ManJak wrote:
Да, сорри за оффтоп (хотя, не совсем оффтоп, т.к. это тоже к оптимизации), но может кто поделится, есть ли смысл врубать nptl?
Точнее, вопрос даже не в этом, а в:
1) много-ли глюков наловишь с него и несовместимостей?
2) виден ли реальный прирост? (по идее, должен быть)

Вот ниразу не сталкивался с проблемами из-за nptl. По скорости значительно быстрее fork'a (где-то видел сравнительные тесты). Поставил апаче с mpm-worker (~x86). Стабильно пашет. Вообще использую nptlonly.
Back to top
View user's profile Send private message
WI
n00b
n00b


Joined: 27 Jan 2005
Posts: 53

PostPosted: Thu May 12, 2005 1:12 pm    Post subject: Reply with quote

nerff wrote:

Это не Window$ - у меня есть дурацкая привычка переставлять сервера посреди рабочего дня по ssh - никто еще ничего не заметил за 2 года.


Вредная привычка, однако. Вам здорово везет :) .

По поводу сабжа http://gazette.linux.ru.net/lg88/piszcz.html - интересный опыт с ядром. Автор пытался выяснить влияние флагов.

Из собственных наблюдений:
Реально (видно на глаз) производительность поднимается за счет заточки под камень, практически на всех приложениях. Оптимизация операций с плавающей точкой (типа -msse ) - мало влияет на скорость строковых операций, а утилиты кодирования видео стали у меня шевелиться заметно шустрей. В общем и целом опции действительно работают так как писано в мане, просто в некоторых случаях они излишни, а иногда даже дают обратный эффект. Авторы многих приложений в доках указывают какие флаги оптимизации стоит включить для получения лучших показателей, а какие включать крайне нежелательно. Некоторые инсталляторы забивают на практически на все флаги и точат так как автор прописал.

Очень сильно помогает "облегчение" приложения. Большинство написаны так что при выкидывании ненужной фичи снимается куча ненужных проверок. После жесткой правки ебилда (выкинул всякую ерунду и поставил то что надо) мой апач на глаз шустрее стал бегать (реально измерить теперь невозможно, но жалоб больше нет) .

<имхо>
Получить "золотой" набор оптимизирующих флагов на все случаи жизни практически невозможно.
Выжать 90% от максимума производительности позволяют два (три ?) всем известных флага.
Трата времени - это поиск оставшихся 10% там, где это не критично, а там где это критично - пора покупать новую железку :)
</имхо>

ЗЫ
Ни в коей мере не хотелось поставить под сомнение личные качества nerff,
Приношу извинения за предоставленную мной возможность так подумать :)
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Thu May 12, 2005 2:38 pm    Post subject: Reply with quote

WI wrote:
nerff wrote:

Это не Window$ - у меня есть дурацкая привычка переставлять сервера посреди рабочего дня по ssh - никто еще ничего не заметил за 2 года.


Вредная привычка, однако. Вам здорово везет :) .

По поводу сабжа http://gazette.linux.ru.net/lg88/piszcz.html - интересный опыт с ядром. Автор пытался выяснить влияние флагов.

Из собственных наблюдений:
Реально (видно на глаз) производительность поднимается за счет заточки под камень, практически на всех приложениях. Оптимизация операций с плавающей точкой (типа -msse ) - мало влияет на скорость строковых операций, а утилиты кодирования видео стали у меня шевелиться заметно шустрей. В общем и целом опции действительно работают так как писано в мане, просто в некоторых случаях они излишни, а иногда даже дают обратный эффект. Авторы многих приложений в доках указывают какие флаги оптимизации стоит включить для получения лучших показателей, а какие включать крайне нежелательно. Некоторые инсталляторы забивают на практически на все флаги и точат так как автор прописал.

Очень сильно помогает "облегчение" приложения. Большинство написаны так что при выкидывании ненужной фичи снимается куча ненужных проверок. После жесткой правки ебилда (выкинул всякую ерунду и поставил то что надо) мой апач на глаз шустрее стал бегать (реально измерить теперь невозможно, но жалоб больше нет) .

<имхо>
Получить "золотой" набор оптимизирующих флагов на все случаи жизни практически невозможно.
Выжать 90% от максимума производительности позволяют два (три ?) всем известных флага.
Трата времени - это поиск оставшихся 10% там, где это не критично, а там где это критично - пора покупать новую железку :)
</имхо>

ЗЫ
Ни в коей мере не хотелось поставить под сомнение личные качества nerff,
Приношу извинения за предоставленную мной возможность так подумать :)



RESPECT!!!

ИМХО, тоже весьма рискованный выбор (еще посреди дня), хотя автор не уточнил какого :)
24 часа в сутках & 12 часовых поясов & 8 часов рабочего дня = +/- :idea:
Back to top
View user's profile Send private message
WI
n00b
n00b


Joined: 27 Jan 2005
Posts: 53

PostPosted: Wed May 18, 2005 10:50 am    Post subject: Reply with quote

Кому это еще интересно, утилита автоподбора оптимальных флагов описана здесь :

http://ru.gentoo-wiki.com/HOWTO_Использование_CFLAGS_для_оптимизации_собранных_программ

В силу вышесказанного лично я сомневаюсь в ее необходимости.
Back to top
View user's profile Send private message
iTux_Tux
n00b
n00b


Joined: 08 Jun 2005
Posts: 13
Location: On PC

PostPosted: Mon Jun 20, 2005 9:50 am    Post subject: Reply with quote

Поможите люди добрые :)
Ставлю с первого стэйджа, на athlon xp 2700+/512MB DDR-333/60GB Винт...
Какие флаги ставить, чтобы НЕ ГЛЮЧИЛО и ЛЕТАЛО???
Спасибо за ранее...
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum