O2 или Os? (для ноутбука с 224 оперативы)

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Аватара пользователя
Karbofos
Сообщения: 266
ОС: Gentoo

O2 или Os?

Сообщение Karbofos »

сабж. В генту вики нашел свою модель процессора, для неё рекомендуют
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium-m -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"

С другой стороны, в статье про оптимизацию написано, что
-Os is very useful for large applications, like Firefox, as it will reduce load time, memory usage, cache misses, disk usage etc. Code compiled with -Os can be faster than -O2 or -O3 because of this. It's also recommended for older computers with a low amount of RAM, disk space or cache on the CPU. But beware that -Os is not as well tested as -O2 and might trigger compiler bugs.

Вроде бы какраз мой случай. Что даст больший эффект в скорости работы?
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: O2 или Os?

Сообщение serzh-z »

Karbofos писал(а):
28.03.2010 13:25
Что даст больший эффект в скорости работы?
Для старых машин - Os, в результате меньшего объёма кода и меньшего времени загрузки этого кода в память.
Спасибо сказали:
Аватара пользователя
Karbofos
Сообщения: 266
ОС: Gentoo

Re: O2 или Os?

Сообщение Karbofos »

понятно. А насколько такая оптимизация стабильна? в вики написано, что она менее тестированая, чем О2
Спасибо сказали:
Аватара пользователя
megabaks
Сообщения: 697
ОС: Gentoo ~x86

Re: O2 или Os?

Сообщение megabaks »

Karbofos писал(а):
28.03.2010 13:53
понятно. А насколько такая оптимизация стабильна? в вики написано, что она менее тестированая, чем О2

если боишься "нестабильности/глюков" - генту не для тебя!
Спасибо сказали:
Аватара пользователя
Sora
Сообщения: 243
ОС: RFR_14

Re: O2 или Os?

Сообщение Sora »

Karbofos писал(а):
28.03.2010 13:25
сабж. В генту вики нашел свою модель процессора, для неё рекомендуют
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium-m -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"

С другой стороны, в статье про оптимизацию написано, что
-Os is very useful for large applications, like Firefox, as it will reduce load time, memory usage, cache misses, disk usage etc. Code compiled with -Os can be faster than -O2 or -O3 because of this. It's also recommended for older computers with a low amount of RAM, disk space or cache on the CPU. But beware that -Os is not as well tested as -O2 and might trigger compiler bugs.

Вроде бы какраз мой случай. Что даст больший эффект в скорости работы?

ИМХО умрешь ждать пока скомпилится.
AMD 4600+, 4Gb DDRII-800, GF GTS250 512Mb, HDD 750Gb WD
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: O2 или Os?

Сообщение rm_ »

-Os is very useful for large applications, like Firefox, as it will reduce load time, memory usage, cache misses, disk usage etc. Code compiled with -Os can be faster than -O2 or -O3 because of this. It's also recommended for older computers with a low amount of RAM, disk space or cache on the CPU.

Интересно было бы увидеть тесты, на которых авторы этих строк основывают свои рассуждения.
В теории-то оно так, но на деле может оказаться, что выигрыш в размере кода не перекрывает проигрыша от этого самого кода большей тормознутости (из-за использования неоптимальных, но зато "маленьких" конструкций).
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: O2 или Os?

Сообщение serzh-z »

rm_ писал(а):
29.03.2010 01:34
В теории-то оно так, но на деле может оказаться, что выигрыш в размере кода не перекрывает проигрыша от этого самого кода большей тормознутости (из-за использования неоптимальных, но зато "маленьких" конструкций).
А никто и не утвержал, что теория должна подтвердиться. Там написано "can be faster"...
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21523
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: O2 или Os?

Сообщение Bizdelnick »

rm_ писал(а):
29.03.2010 01:34
Интересно было бы увидеть тесты, на которых авторы этих строк основывают свои рассуждения.

Где-то мне попадалось такое сравнение с выводом об отсутствии особой разницы между -O2 и -Os (как по скорости, так и по размеру файлов). Сейчас, правда, уже не помню, где.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: O2 или Os?

Сообщение drBatty »

rm_ писал(а):
29.03.2010 01:34
Интересно было бы увидеть тесты, на которых авторы этих строк основывают свои рассуждения.

я помнится этим озаботился, и выяснил, что разница не велика и разная для разных программ. потому ИМХО не стОит этим особенно заморачиваться.
Karbofos писал(а):
28.03.2010 13:25
-Os is very useful for large applications, like Firefox, as it will reduce load time, memory usage, cache misses, disk usage etc. Code compiled with -Os can be faster than -O2 or -O3

ага. если я правильно понимаю, тут написано "может быть быстрее", однако, эта оптимизация в большинстве случаев должна уменьшать быстродействие, ведь скорость и размер - противоречивые понятия. К тому-же программы и так невесомые (например sed весит жалкие 55-75К), эта величина очень незначительна по сравнению с вашими 224000К, выигрыш будет так-же незаметен. За то будет заметен проигрыш. К примеру такая задача: надо умножить число на десять. Возможно 2 решения:
1) использовать команду IMUL
2) сдвинуть влево на 1 разряд и прибавить к этому сдвинутое влево на 3 разряда.
способ №2 несколько длиннее, но тем не менее работает в десятки раз быстрее способа №1.

Таким образом какое либо ускорение от -Os можно заметить только на больших программах вроде FireFox. Да и то не всегда.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: O2 или Os?

Сообщение rm_ »

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

И вот кстати говоря мне очень не нравится, что в Debian'е дефолтные ядра компилируются с -Os. Хотел попросить чтоб это убрали, но меня послали доказывать, что вода мокрая, а снег холодный ("I found gcc-3.3 -Os to deliver about 30% less performance than -O2.").
Впрочем, в своих ядрах всегда и так переключаю на O2 - каких-либо проблем нет. Гонять тесты чтобы сравнить производительность в обоих случаях, желания пока тоже нет.


Не заметил, что мы в разделе про Генту. :)
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: O2 или Os?

Сообщение drBatty »

rm_ писал(а):
29.03.2010 09:02
И вот кстати говоря мне очень не нравится, что в Debian'е дефолтные ядра компилируются с -Os.

вот как раз про ядро - не в курсе. выигрыша от ускорения загрузки тут не получить - ядро и так в памяти постоянно, от экономии - тоже (оно какие-то копейки занимает, даже новое из слаки13 на древнем компе с 256ю метрами). Возможно это будет полезно на LiveCD... Не знаю... В любом случае, выигрыш ну никак не может составить 30%. ИМХО. Скорее -30%.

Karbofos писал(а):
28.03.2010 13:25
It's also recommended for older computers with a low amount of RAM, disk space or cache on the CPU.

ИМХО этим строчкам лет 10... Если не больше. Сейчас мой комп 3000MHz+504RAM уже "older computers"... Возможно если "older" это что-то такое с 640Кб памяти, то да... Есть смысл. Такие компьютеры есть и сейчас, например мой модем Acorp, там то-ли 2Мб, то-ли 4Мб.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: O2 или Os?

Сообщение drBatty »

ЗЫЖ справедливости ради стоит сказать, что увеличение быстродействия возможно и в новых компах. При выполнении следующих условий:
1)критическая часть кода (та, что занимает 80% времени) не влезает в кеш CPU с опцией -O2
2)критическая часть влезает в кеш с -Os
только выполнение И п1 И п2 ИМХО очень мало вероятно. Если только специально код не подбирать... Если-же подобрать, то да - будут постоянные промахи кеша, и CPU будет постоянно подгружать программу из другого кеша или из RAM.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
megabaks
Сообщения: 697
ОС: Gentoo ~x86

Re: O2 или Os?

Сообщение megabaks »

по поводу размеров
очередное ядро при сборке с -Os получилось 2.6 Mb с -O2 - 2.9 Mb (bzImage)
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: O2 или Os?

Сообщение drBatty »

megabaks писал(а):
30.03.2010 00:56
по поводу размеров

и какой-же процент занимают эти 600К из вашего ОЗУ?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
megabaks
Сообщения: 697
ОС: Gentoo ~x86

Re: O2 или Os?

Сообщение megabaks »

drBatty писал(а):
30.03.2010 16:34
megabaks писал(а):
30.03.2010 00:56
по поводу размеров

и какой-же процент занимают эти 600К из вашего ОЗУ?

честно? хз
но -O2 оставил из-за выравнивания рулящего на интел процах (кроме селерона и атома) - та же загрузка ядра ощутимо быстрее с -O2
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: O2 или Os?

Сообщение drBatty »

megabaks писал(а):
31.03.2010 00:07
но -O2 оставил из-за выравнивания рулящего на интел процах (кроме селерона и атома)

про атом не в курсе, но на cel тоже рулит. Оно вообще везде рулит...
и в O2 кроме выравнивания полно всего.
И вообще, если вам это так надо, попробуйте O3. Оно ещё быстрее.

ЗЫЖ мой gcc понимает штук 30 оптимизаций, которые можно включать по отдельности. Если вам это интересно - экспериментируйте...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
megabaks
Сообщения: 697
ОС: Gentoo ~x86

Re: O2 или Os?

Сообщение megabaks »

-O3 иногда рожает тормоза и непонятки - профита для всей системы 0! потому лесом :)
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: O2 или Os?

Сообщение drBatty »

megabaks писал(а):
31.03.2010 00:33
-O3 иногда рожает тормоза и непонятки - профита для всей системы 0! потому лесом :)

профит будет, если вы применяете O3 селективно, к некоторым критичным частям кода. а так да...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали: