Оптимизация и компиляция: две подружки - налётчицы (отрезано от "новичков")

Любые разговоры которые хоть как-то связаны с тематикой форума

Модератор: Модераторы разделов

Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo

Оптимизация и компиляция: две подружки - налётчицы

Сообщение Nikoli »

Вы хотите всю мандриву пересобрать под своё железо?
ИМХО лучше сначала освоиться в линуксе, заставить работать всё железо, подобрать софт и, если хотите оптимизации и готовы тратить время, трафик, электричество, переходить на дистрибутив, где всё изначально собирается из исходников. В бинарных дистрах смысл вручную собирать из исходников все программы я лично не вижу, обновлять будет крайне неудобно, да и не для этого они делались, хотя часто средства для пересборки системы из исходников имеют, но эти "средства" оставляют желать лучшего.
Спасибо сказали:
Лис
Сообщения: 1639
ОС: Zenwalk

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение Лис »

Не забывайте, что оптимизация в реальной жизни - это не то, что на бумаге. Вполне возможно, что "оптимизированная" программа будет работать даже медленней или вообще может не собраться. Кроме того, флаги для процессора включаются автоматически даже при обычном конфигурировании программы. Если, конечно, они нужны для нее.
Спасибо сказали:
Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение Nikoli »

Лис писал(а):
07.05.2007 12:01
Не забывайте, что оптимизация в реальной жизни - это не то, что на бумаге. Вполне возможно, что "оптимизированная" программа будет работать даже медленней или вообще может не собраться. Кроме того, флаги для процессора включаются автоматически даже при обычном конфигурировании программы. Если, конечно, они нужны для нее.

На счет медленней сильно сомневаюсь, ссылки в студию. При преходе с Kubuntu на Gentoo скорость запуска Gimp, Openoffice увеличилась в разы, другие проги стали работать и запускаться ощутимо быстрее.
На счет не собираться использование стабильных пакетов гарантирует их сборку в большинстве случаев, за всё время использования Gentoo не собрался только один пакет, но с помощью форума проблема была решена за несколько минут.

P.S. Если вы включите слишком сильно оптимизирующие флаги, проблемы будут, но при использование рекомендуемых флагов проблем со стабильностью нет, но скорость работы системы увеличивается на порядок.
Спасибо сказали:
Dimanish
Сообщения: 80
ОС: Gentoo GNU/Linux

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение Dimanish »

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

Код: Выделить всё

CHOST="i686-pc-linux-gnu"
CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"

работает заметно быстрее KDE аналогичной версии в Kubuntu.
Registered Linux User #472660
Спасибо сказали:
Лис
Сообщения: 1639
ОС: Zenwalk

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение Лис »

На счет медленней сильно сомневаюсь, ссылки в студию.

Ссылки на что? На мой личный опыт? И не нужно сравнивать жирную Ubuntu с Gentoo. Сравните лучше source-based Gentoo (опции те же, что представил Dimanish) со Slackware, которая собирается с опциями -mtune=i486 -march=i686. Последняя работает быстрее. Опять же это субъективное ощущение. Кроме того, скрость работы системы еще сильно (пожалуй, даже в большей степени) зависит от общего количества запущенных процессов.
Кстати, на счет ссылок могу предоставить во эту: http://wiki.archlinux.org/index.php/Arch_vs_Others.
Прочитайте сравнение с Gentoo и еще можно с Zenwalk. В обоих случаях говорится, что документированных доказательств увеличения производительности при оптимизации нет.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение alv »

Titanum писал(а):
06.05.2007 20:59
Главное то , и забыл спросить smile.gif А есть ли в этом смысл ?

Это действительно главное. Ответ: в общем случае - нет.
Некую конкретную прогу можно путем точного подбора флагов заоптимизировать до посинения - так, что она будет работать процентов на 5-10 быстрее. Именно работать, а не запускаться - скорость старта программы к быстроте выполнения ее функций не имеет ни малейшего отношения.
Имеет смысл в случае, если Вы зарабатываете на хлеб насущный, скажем, оцифровкой звука или видео в промышленных масштабах.
Nikoli писал(а):
07.05.2007 12:29
ссылки в студию

Цифры в студию, плиз
А сслыки - запросто:
http://posix.ru/system.shtml
Раздел Тесты.
И не рассказывайте сказок.
Я, конечно, понимаю, что гентушнегу, затратившему тре суток на компиляцию своей систем, просто не возможно не вообразить себе разницы в быстродействии. Но цифрами это не доказал еще никто :)
И еще раз повторяю - е надо путать скорость запуска программ (или старта системы) и скорость выполнения ими своих функций, это даже не четыре, а восемь разниц. И очень больших.
PS заявляю это со всей ответственностью, как один из первых гентушнегов на Руси.
Спасибо сказали:
Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение Nikoli »

Лис писал(а):
07.05.2007 13:27
Ссылки на что? На мой личный опыт? И не нужно сравнивать жирную Ubuntu с Gentoo. Сравните лучше source-based Gentoo (опции те же, что представил Dimanish) со Slackware, которая собирается с опциями -mtune=i486 -march=i686. Последняя работает быстрее. Опять же это субъективное ощущение. Кроме того, скрость работы системы еще сильно (пожалуй, даже в большей степени) зависит от общего количества запущенных процессов.
Кстати, на счет ссылок могу предоставить во эту: http://wiki.archlinux.org/index.php/Arch_vs_Others.
Прочитайте сравнение с Gentoo и еще можно с Zenwalk. В обоих случаях говорится, что документированных доказательств увеличения производительности при оптимизации нет.

Производители процессоров за время прошедшие с выпуска i686 сделали не мало изменений в их архитектуре и добавили наборы команд. Любой дистрибутив линукса собирается из исходников. Производители бинарных дистрибутивов стараются сделать своё решение максимально универсальным и не могут подогнать свой продукт под особенности железа конечных пользователей. Смысл сборки системы из исходников в учете всех особенностей своего компьютера и опция -march=cpu-type увеличет производительность т.к. будут использоваться все команды процессора. Или вы хотите сказать, что Intel, AMD,IBM,SUN просто так добавляют всякие MMX, SSE, 3DNow, altivec?
Вместо -mtune=i486 -march=i686 достаточно -march=i686:
-march=cpu-type
Generate instructions for the machine type cpu-type. The choices for cpu-type are the same as for -mtune. Moreover, specifying -march=cpu-type implies -mtune=cpu-type.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение alv »

Nikoli писал(а):
07.05.2007 14:42
Или вы хотите сказать, что Intel, AMD,IBM,SUN просто так добавляют всякие MMX, SSE, 3DNow, altivec?

Именно это я и хочу сказать.Потому что программ, их использующих, можно пересчитать по пальцам. А без этого хоть по пять раз пропишите соответствующие флаги - толку от них не будет.
Так что еще раз процитирую Атоса и самого себя:
Господа, полагающие себя работающими за AMD64 и Inel Core 2 Duo, в большинстве случаев вы едите конину. То есть старый добрый Pentium Pro. И, как правило, без седла...


Лис писал(а):
07.05.2007 13:27
Slackware, которая собирается с опциями -mtune=i486 -march=i686.

Не, ну наоборот, конечно. Как и Zenwalk. Но в приципе Вы правы.
Arch и CRUX собираются с -O2 -march=i686
Кстати, а Прескотт (и вообще все Пентумы-4) - это как раз тот случай, когда для многих приложений достоверно доказано падение производительности при -O3 и соответствующем -march
Спасибо сказали:
Dimanish
Сообщения: 80
ОС: Gentoo GNU/Linux

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение Dimanish »

alv писал(а):
07.05.2007 14:50
Arch и CRUX собираются с -O2 -march=i686
Кстати, а Прескотт (и вообще все Пентумы-4) - это как раз тот случай, когда для многих приложений достоверно доказано падение производительности при -O3 и соответствующем -march

Во-первых, к Prescott также относятся процессоры семейства Celeron D, обладателем которого я и являюсь. :-)
А во-вторых, хотелось бы увидеть более полный ответ или ссылочки, на крайний случай,  с достоверными доказательствами падения производительности при использовании флага компиляции "-O3". Просто, чтобы вы не казались голословным.
В-третьих, собствнный опыт не обманешь. Я же своими глазами вижу, что всё, что собрано мною в генту работает быстрее на том же "железе", чем в кубунту. 
Registered Linux User #472660
Спасибо сказали:
Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение Nikoli »

Если опция -march= такая вредная, зачем её вообще в GCC ввели, зачем рекомендуют её включать разработчики Gentoo? ;) Даже если не все программы используют дополнительные наборы команд в полной мере, смысл в оптимизации под процессор есть.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение alv »

Dimanish писал(а):
07.05.2007 15:02
Просто, чтобы вы не казались голословным

Сылка приведена выше
А вот все утверждения о повышении производительности - абсолютно голословны. Допускаю, что Вы
Dimanish писал(а):
07.05.2007 15:02
своими глазами вижу, что всё, что собрано мною в генту работает быстрее на том же "железе", чем в кубунту.

Но я-то этого не вижу :)
Так что - цифры, пожалуйста.
И не нужно опять про скорость запуска OOo - это легко достигается средствами типа прелинкинга во всех его проявлениях.
А, скажем, скорость архивации и компресии 50-гигабайтного архива смешанных данных
Или - время пересборки Иксов
Или, на худой конец, время глобальной замены слова Gentoo на слово Kubuntu в 10-мегабайтном документе OOo.
Еще можно скорость оцифровки тысячи аудиотреков в lame - вот тут, пожалуй, что-нибудь от оптимизации и получится :)
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение alv »

Nikoli писал(а):
07.05.2007 15:09
Если опция -march= такая вредная, зачем её вообще в GCC ввели

Разве кто-то говорил, что она вредная? Говорилось, что во многих случаях она не очень полезная. По двум причинам:
1. программа может не использовать дополнительные инструкции процессора
2. опция march - это своего рода макрос, который подключает эти процессор-специфичные инструкции. Но может этого и не сделать. Поэтому в документации по gcc реомендуется задавать всякие процессор-специфичные ключи в явном виде - для программ, которые их достоверно используют
А так да, i686 обычно не вредит :)
Врендной в ряде случаев может оказаться ключ -O3 и всякие совсем уж агрессивные флаги, нарушающие стандарты ANSI.
Да все это очень подробно описано в книжке Столлмена сотоварищи по gcc. Русский перевод, правда, очень старый
Спасибо сказали:
Dimanish
Сообщения: 80
ОС: Gentoo GNU/Linux

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение Dimanish »

alv писал(а):
07.05.2007 15:11
Сылка приведена выше
Так что - цифры, пожалуйста.
И не нужно опять про скорость запуска OOo - это легко достигается средствами типа прелинкинга во всех его проявлениях.
А, скажем, скорость архивации и компресии 50-гигабайтного архива смешанных данных
Или - время пересборки Иксов
Или, на худой конец, время глобальной замены слова Gentoo на слово Kubuntu в 10-мегабайтном документе OOo.
Еще можно скорость оцифровки тысячи аудиотреков в lame - вот тут, пожалуй, что-нибудь от оптимизации и получится :)

К сожалению, нет ни сил ни времени проводить подобные тесты.
Я человекус простой, вижу, что в одном дистрибутиве konqueror, amaroK и прочие "прелести" KDE запускаются за секунду (генту), а в другом 5-6 секунд (кубунту) и нам этого достаточно, чтобы сделать свой выбор. :-)
Registered Linux User #472660
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение alv »

Dimanish писал(а):
07.05.2007 15:29
К сожалению, нет ни сил ни времени проводить подобные тесты.
Я человекус простой, вижу, что в одном дистрибутиве konqueror, amaroK и прочие "прелести" KDE запускаются за секунду (генту), а в другом 5-6 секунд (кубунту) и нам этого достаточно, чтобы сделать свой выбор. :-)

Так Вас никто и не отговаривает. Просто не нужно убеждать других, что это и есть быстродействие работы системы
Спасибо сказали:
Dimanish
Сообщения: 80
ОС: Gentoo GNU/Linux

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение Dimanish »

alv писал(а):
07.05.2007 15:36
Так Вас никто и не отговаривает. Просто не нужно убеждать других, что это и есть быстродействие работы системы

Дык и не было, не было такого. :-)
Где? Ткните пальцем. Исключительно собственное мнение.
Кстати, если amaroK, kate, k3b и т.д. грузятся быстрее, konqueror моментально открывает страницы - как это называется?
В том плане, раз это не "быстродействие работы", то назовём сие - ?
Registered Linux User #472660
Спасибо сказали:
Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение Nikoli »

alv, вы говорите программ, использующих дополнительные команды, немного и выиграш от них получается не на всех задачах. Насколько мне известно значительный выиграш получается при видео и аудиокодирования т.к. наборы команд создавались часто именно для "мультимедийных приложений" Какие ещё задачи и приложения чувствительны к оптимизации, и например, какие приложения лучше оптимизированны под продукцию АМД или Интел? сейчас АМД переносит в свои процессоры наборы команд Интел с небольшой задержкой, Интел перенесла AMD64 как EM64T и разница между процессорами прилично сократилась, но всё же осталась. Есть ли какие списки показывающие такие особенности программ?

P.S. чем объясняется ускорения запуска программ при переходе с Кубунту на Джинту?
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение alv »

Dimanish писал(а):
07.05.2007 15:42
Где? Ткните пальцем.

Вот:
Dimanish писал(а):
07.05.2007 13:06
Полностью согласен с Nikoli

утверждавшим, что
Nikoli писал(а):
07.05.2007 12:29
другие проги стали работать и запускаться ощутимо быстрее.

(курсив мой)
Dimanish писал(а):
07.05.2007 15:42
В том плане, раз это не "быстродействие работы", то назовём сие - ?

Вашим субъективным ощущением.
А вот по моим субъективным ощущениям, Arch быстрее Gentoo, а уж с CRUX'ом в этом отношении вообще ничто не сравнится. Хотя и Zenwalk субъективно не принципиально медленней :)
А конкверов и у Кубунте у меня открывал страницы мгновенно. С диска, разумеется :)
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение alv »

Nikoli писал(а):
07.05.2007 15:45
Насколько мне известно значительный выиграш получается при видео и аудиокодирования т.к. наборы команд создавались часто именно для "мультимедийных приложений"

Насколько мне известно - да. Только значительность я бы не переоценивал - речь идет о 5, в лучшем случае 10 %. Что играет роль только при промышленном использовании.
Когда я занимался тестированием, то получил немало писем, в которых меня убеждали в фантастическом выигрыше от оптимизации при всяком кодировании/декодировании/перекодировании. Однако на просьбу - прислать цифры, не ответил ни один энтузиаст :)
Вполне вероятно, что будет выигрышь на всяком 3D-рендеринге, но я с этим дела не имел.
Nikoli писал(а):
07.05.2007 15:45
какие приложения лучше оптимизированны под продукцию АМД или Интел?

Не думаю, что линуксовый софт кто-то специально оптимизирует под тот или иной процессор (в отличие от виндового) - не целесообразно. Хотя возможно, что какие-нибудь чисто счетные, давно развивающиеся, программы лучше будут работать на AMD - за счет более мощного FPU и лучшей оптимизации задач именно под него.
Топпер появится - просветит, как дело обстоит нынче, я к этой теме утратил интерес несколько лет назад. После того, как на собственном опыте убедился, что для моих задач все эти оптимизации не дают ничего.
Nikoli писал(а):
07.05.2007 15:45
P.S. чем объясняется ускорения запуска программ при переходе с Кубунту на Джинту?

Поскольку этого не наблюдал - ответить затрудняюсь :)
Спасибо сказали:
Лис
Сообщения: 1639
ОС: Zenwalk

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение Лис »

Я человекус простой, вижу, что в одном дистрибутиве konqueror, amaroK и прочие "прелести" KDE запускаются за секунду (генту), а в другом 5-6 секунд (кубунту) и нам этого достаточно, чтобы сделать свой выбор. :-)

Вам же говорят, что это быстродействие основано отнюдь не на опциях компиляции, которые якобы превращают третий Селерон в Пентиум. На чем - другой вопрос. Я уже сказал, смотрите запущенные процессы и скрипты запуска (если мы говорим о системе). Вы сравните Генту с флагом i686 и ее же с флагом prescott. Вот тогда, если почувствуете разницу, можете говорить о том, что эти флаги дейтсвительно так оптимизируют, что мало не покажется.
konqueror моментально открывает страницы - как это называется?

Незагруженный сервак это называется :D.
Насколько мне известно значительный выиграш получается при видео и аудиокодирования т.к. наборы команд создавались часто именно для "мультимедийных приложений"

Именно. Правда, будет ли музыка сжиматься за 20 минут или за 22 меня как-то не сильно беспокоит, но проигрывание фильмов - это более занятно. В Слаке xine-lib в отличие от большинства остальных пакетов собирается с опциями:

Код: Выделить всё

# I would use "-march=i486 -mtune=i686" here as usual, but with XINE it's all or nothing.
# I'd rather have it work well for the i686/Athlon crowd than suck for everyone.
ARCH=${ARCH:-i686}
TARGET=${TARGET:-$ARCH-pc-linux-gnu}

В Дзене я использую самосборные пакеты. Пробовал и просто вводить ./configure, и оптимизировать под prescott. Разницы не заметил никакой. как в своих пакетах, так и со слаковским. Но когда я пытался скомпилировать KDE с оптимизацией (все остальные опции и патчи - из slackbuild), то увидел падение поизводительности. Кроме токо kdebindings вообще собираться не хотел.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Оптимизация и компиляция: две подружки - налётчицы

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

Nikoli писал(а):
07.05.2007 14:42
Смысл сборки системы из исходников в учете всех особенностей своего компьютера и опция -march=cpu-type увеличет производительность т.к. будут использоваться все команды процессора.
Не столько в "учете всех особенностей своего процессора", сколько в обрезании всего лишнего, и, как следствие, уменьшении требований к памяти и освобождения диска. Так же как, в большинстве случаев, возможность избежать проблем с обновлением и скачиванием почти всей системы в случае изменении всего лишь одной, ма-а-аленькой, библиотеки (скажем glibc). Имхо.
Спасибо сказали:
Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение Nikoli »

Лично я ускорение запуска программ заметил при переходе на Джинту, скорость РАБОТЫ я не мерил, думаю не уменьшилась :) сейчас у меня рядом с Джинту стоит Кубунту 7.04 и я готов проверить и выложить результаты быстродействия и времени запуска программ. С быстродействием понятно - time команда, а как быть с временем запуска?
Может сделать набор тестов в виде скрипта и сравнить быстродействие систем? Только, учитывая разницу в наборе программ, универсальный набор не просто сделать.
Спасибо сказали:
Лис
Сообщения: 1639
ОС: Zenwalk

Re: Оптимизация и компиляция: две подружки - налётчицы

Сообщение Лис »

Лично я ускорение запуска программ заметил при переходе на Джинту, скорость РАБОТЫ я не мерил, думаю не уменьшилась smile.gif сейчас у меня рядом с Джинту стоит Кубунту 7.04 и я готов проверить и выложить результаты быстродействия и времени запуска программ.

Вы посты других людей читаете?
Спасибо сказали: