Оптимизация и компиляция: две подружки - налётчицы (отрезано от "новичков")
Модератор: Модераторы разделов
-
Nikoli
- Сообщения: 554
- Статус: Житель
- ОС: Gentoo
Оптимизация и компиляция: две подружки - налётчицы
Вы хотите всю мандриву пересобрать под своё железо?
ИМХО лучше сначала освоиться в линуксе, заставить работать всё железо, подобрать софт и, если хотите оптимизации и готовы тратить время, трафик, электричество, переходить на дистрибутив, где всё изначально собирается из исходников. В бинарных дистрах смысл вручную собирать из исходников все программы я лично не вижу, обновлять будет крайне неудобно, да и не для этого они делались, хотя часто средства для пересборки системы из исходников имеют, но эти "средства" оставляют желать лучшего.
ИМХО лучше сначала освоиться в линуксе, заставить работать всё железо, подобрать софт и, если хотите оптимизации и готовы тратить время, трафик, электричество, переходить на дистрибутив, где всё изначально собирается из исходников. В бинарных дистрах смысл вручную собирать из исходников все программы я лично не вижу, обновлять будет крайне неудобно, да и не для этого они делались, хотя часто средства для пересборки системы из исходников имеют, но эти "средства" оставляют желать лучшего.
-
Лис
- Сообщения: 1639
- ОС: Zenwalk
Re: Оптимизация и компиляция: две подружки - налётчицы
Не забывайте, что оптимизация в реальной жизни - это не то, что на бумаге. Вполне возможно, что "оптимизированная" программа будет работать даже медленней или вообще может не собраться. Кроме того, флаги для процессора включаются автоматически даже при обычном конфигурировании программы. Если, конечно, они нужны для нее.
-
Nikoli
- Сообщения: 554
- Статус: Житель
- ОС: Gentoo
Re: Оптимизация и компиляция: две подружки - налётчицы
Лис писал(а): ↑07.05.2007 12:01Не забывайте, что оптимизация в реальной жизни - это не то, что на бумаге. Вполне возможно, что "оптимизированная" программа будет работать даже медленней или вообще может не собраться. Кроме того, флаги для процессора включаются автоматически даже при обычном конфигурировании программы. Если, конечно, они нужны для нее.
На счет медленней сильно сомневаюсь, ссылки в студию. При преходе с Kubuntu на Gentoo скорость запуска Gimp, Openoffice увеличилась в разы, другие проги стали работать и запускаться ощутимо быстрее.
На счет не собираться использование стабильных пакетов гарантирует их сборку в большинстве случаев, за всё время использования Gentoo не собрался только один пакет, но с помощью форума проблема была решена за несколько минут.
P.S. Если вы включите слишком сильно оптимизирующие флаги, проблемы будут, но при использование рекомендуемых флагов проблем со стабильностью нет, но скорость работы системы увеличивается на порядок.
-
Dimanish
- Сообщения: 80
- ОС: Gentoo GNU/Linux
Re: Оптимизация и компиляция: две подружки - налётчицы
Полностью согласен с Nikoli.
Тот же KDE в Gentoo при задании безопасных флагов компиляции, в моём случае:
работает заметно быстрее KDE аналогичной версии в Kubuntu.
Тот же 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: Оптимизация и компиляция: две подружки - налётчицы
Это действительно главное. Ответ: в общем случае - нет.
Некую конкретную прогу можно путем точного подбора флагов заоптимизировать до посинения - так, что она будет работать процентов на 5-10 быстрее. Именно работать, а не запускаться - скорость старта программы к быстроте выполнения ее функций не имеет ни малейшего отношения.
Имеет смысл в случае, если Вы зарабатываете на хлеб насущный, скажем, оцифровкой звука или видео в промышленных масштабах.
Цифры в студию, плиз
А сслыки - запросто:
http://posix.ru/system.shtml
Раздел Тесты.
И не рассказывайте сказок.
Я, конечно, понимаю, что гентушнегу, затратившему тре суток на компиляцию своей систем, просто не возможно не вообразить себе разницы в быстродействии. Но цифрами это не доказал еще никто
И еще раз повторяю - е надо путать скорость запуска программ (или старта системы) и скорость выполнения ими своих функций, это даже не четыре, а восемь разниц. И очень больших.
PS заявляю это со всей ответственностью, как один из первых гентушнегов на Руси.
-
Nikoli
- Сообщения: 554
- Статус: Житель
- ОС: Gentoo
Re: Оптимизация и компиляция: две подружки - налётчицы
Лис писал(а): ↑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: Оптимизация и компиляция: две подружки - налётчицы
Именно это я и хочу сказать.Потому что программ, их использующих, можно пересчитать по пальцам. А без этого хоть по пять раз пропишите соответствующие флаги - толку от них не будет.
Так что еще раз процитирую Атоса и самого себя:
Господа, полагающие себя работающими за AMD64 и Inel Core 2 Duo, в большинстве случаев вы едите конину. То есть старый добрый Pentium Pro. И, как правило, без седла...
Не, ну наоборот, конечно. Как и Zenwalk. Но в приципе Вы правы.
Arch и CRUX собираются с -O2 -march=i686
Кстати, а Прескотт (и вообще все Пентумы-4) - это как раз тот случай, когда для многих приложений достоверно доказано падение производительности при -O3 и соответствующем -march
-
Dimanish
- Сообщения: 80
- ОС: Gentoo GNU/Linux
Re: Оптимизация и компиляция: две подружки - налётчицы
Во-первых, к Prescott также относятся процессоры семейства Celeron D, обладателем которого я и являюсь. :-)
А во-вторых, хотелось бы увидеть более полный ответ или ссылочки, на крайний случай, с достоверными доказательствами падения производительности при использовании флага компиляции "-O3". Просто, чтобы вы не казались голословным.
В-третьих, собствнный опыт не обманешь. Я же своими глазами вижу, что всё, что собрано мною в генту работает быстрее на том же "железе", чем в кубунту.
Registered Linux User #472660
-
Nikoli
- Сообщения: 554
- Статус: Житель
- ОС: Gentoo
Re: Оптимизация и компиляция: две подружки - налётчицы
Если опция -march= такая вредная, зачем её вообще в GCC ввели, зачем рекомендуют её включать разработчики Gentoo?
Даже если не все программы используют дополнительные наборы команд в полной мере, смысл в оптимизации под процессор есть.
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Оптимизация и компиляция: две подружки - налётчицы
Сылка приведена выше
А вот все утверждения о повышении производительности - абсолютно голословны. Допускаю, что Вы
Но я-то этого не вижу
Так что - цифры, пожалуйста.
И не нужно опять про скорость запуска OOo - это легко достигается средствами типа прелинкинга во всех его проявлениях.
А, скажем, скорость архивации и компресии 50-гигабайтного архива смешанных данных
Или - время пересборки Иксов
Или, на худой конец, время глобальной замены слова Gentoo на слово Kubuntu в 10-мегабайтном документе OOo.
Еще можно скорость оцифровки тысячи аудиотреков в lame - вот тут, пожалуй, что-нибудь от оптимизации и получится
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Оптимизация и компиляция: две подружки - налётчицы
Разве кто-то говорил, что она вредная? Говорилось, что во многих случаях она не очень полезная. По двум причинам:
1. программа может не использовать дополнительные инструкции процессора
2. опция march - это своего рода макрос, который подключает эти процессор-специфичные инструкции. Но может этого и не сделать. Поэтому в документации по gcc реомендуется задавать всякие процессор-специфичные ключи в явном виде - для программ, которые их достоверно используют
А так да, i686 обычно не вредит
Врендной в ряде случаев может оказаться ключ -O3 и всякие совсем уж агрессивные флаги, нарушающие стандарты ANSI.
Да все это очень подробно описано в книжке Столлмена сотоварищи по gcc. Русский перевод, правда, очень старый
-
Dimanish
- Сообщения: 80
- ОС: Gentoo GNU/Linux
Re: Оптимизация и компиляция: две подружки - налётчицы
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: Оптимизация и компиляция: две подружки - налётчицы
Dimanish писал(а): ↑07.05.2007 15:29К сожалению, нет ни сил ни времени проводить подобные тесты.
Я человекус простой, вижу, что в одном дистрибутиве konqueror, amaroK и прочие "прелести" KDE запускаются за секунду (генту), а в другом 5-6 секунд (кубунту) и нам этого достаточно, чтобы сделать свой выбор. :-)
Так Вас никто и не отговаривает. Просто не нужно убеждать других, что это и есть быстродействие работы системы
-
Dimanish
- Сообщения: 80
- ОС: Gentoo GNU/Linux
Re: Оптимизация и компиляция: две подружки - налётчицы
Дык и не было, не было такого. :-)
Где? Ткните пальцем. Исключительно собственное мнение.
Кстати, если amaroK, kate, k3b и т.д. грузятся быстрее, konqueror моментально открывает страницы - как это называется?
В том плане, раз это не "быстродействие работы", то назовём сие - ?
Registered Linux User #472660
-
Nikoli
- Сообщения: 554
- Статус: Житель
- ОС: Gentoo
Re: Оптимизация и компиляция: две подружки - налётчицы
alv, вы говорите программ, использующих дополнительные команды, немного и выиграш от них получается не на всех задачах. Насколько мне известно значительный выиграш получается при видео и аудиокодирования т.к. наборы команд создавались часто именно для "мультимедийных приложений" Какие ещё задачи и приложения чувствительны к оптимизации, и например, какие приложения лучше оптимизированны под продукцию АМД или Интел? сейчас АМД переносит в свои процессоры наборы команд Интел с небольшой задержкой, Интел перенесла AMD64 как EM64T и разница между процессорами прилично сократилась, но всё же осталась. Есть ли какие списки показывающие такие особенности программ?
P.S. чем объясняется ускорения запуска программ при переходе с Кубунту на Джинту?
P.S. чем объясняется ускорения запуска программ при переходе с Кубунту на Джинту?
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Оптимизация и компиляция: две подружки - налётчицы
Вот:
утверждавшим, что
(курсив мой)
Вашим субъективным ощущением.
А вот по моим субъективным ощущениям, Arch быстрее Gentoo, а уж с CRUX'ом в этом отношении вообще ничто не сравнится. Хотя и Zenwalk субъективно не принципиально медленней
А конкверов и у Кубунте у меня открывал страницы мгновенно. С диска, разумеется
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Оптимизация и компиляция: две подружки - налётчицы
Насколько мне известно - да. Только значительность я бы не переоценивал - речь идет о 5, в лучшем случае 10 %. Что играет роль только при промышленном использовании.
Когда я занимался тестированием, то получил немало писем, в которых меня убеждали в фантастическом выигрыше от оптимизации при всяком кодировании/декодировании/перекодировании. Однако на просьбу - прислать цифры, не ответил ни один энтузиаст
Вполне вероятно, что будет выигрышь на всяком 3D-рендеринге, но я с этим дела не имел.
Не думаю, что линуксовый софт кто-то специально оптимизирует под тот или иной процессор (в отличие от виндового) - не целесообразно. Хотя возможно, что какие-нибудь чисто счетные, давно развивающиеся, программы лучше будут работать на AMD - за счет более мощного FPU и лучшей оптимизации задач именно под него.
Топпер появится - просветит, как дело обстоит нынче, я к этой теме утратил интерес несколько лет назад. После того, как на собственном опыте убедился, что для моих задач все эти оптимизации не дают ничего.
Поскольку этого не наблюдал - ответить затрудняюсь
-
Лис
- Сообщения: 1639
- ОС: Zenwalk
Re: Оптимизация и компиляция: две подружки - налётчицы
Я человекус простой, вижу, что в одном дистрибутиве konqueror, amaroK и прочие "прелести" KDE запускаются за секунду (генту), а в другом 5-6 секунд (кубунту) и нам этого достаточно, чтобы сделать свой выбор. :-)
Вам же говорят, что это быстродействие основано отнюдь не на опциях компиляции, которые якобы превращают третий Селерон в Пентиум. На чем - другой вопрос. Я уже сказал, смотрите запущенные процессы и скрипты запуска (если мы говорим о системе). Вы сравните Генту с флагом i686 и ее же с флагом prescott. Вот тогда, если почувствуете разницу, можете говорить о том, что эти флаги дейтсвительно так оптимизируют, что мало не покажется.
konqueror моментально открывает страницы - как это называется?
Незагруженный сервак это называется
Насколько мне известно значительный выиграш получается при видео и аудиокодирования т.к. наборы команд создавались часто именно для "мультимедийных приложений"
Именно. Правда, будет ли музыка сжиматься за 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: Оптимизация и компиляция: две подружки - налётчицы
Не столько в "учете всех особенностей своего процессора", сколько в обрезании всего лишнего, и, как следствие, уменьшении требований к памяти и освобождения диска. Так же как, в большинстве случаев, возможность избежать проблем с обновлением и скачиванием почти всей системы в случае изменении всего лишь одной, ма-а-аленькой, библиотеки (скажем glibc). Имхо.
-
Nikoli
- Сообщения: 554
- Статус: Житель
- ОС: Gentoo
Re: Оптимизация и компиляция: две подружки - налётчицы
Лично я ускорение запуска программ заметил при переходе на Джинту, скорость РАБОТЫ я не мерил, думаю не уменьшилась
сейчас у меня рядом с Джинту стоит Кубунту 7.04 и я готов проверить и выложить результаты быстродействия и времени запуска программ. С быстродействием понятно - time команда, а как быть с временем запуска?
Может сделать набор тестов в виде скрипта и сравнить быстродействие систем? Только, учитывая разницу в наборе программ, универсальный набор не просто сделать.
Может сделать набор тестов в виде скрипта и сравнить быстродействие систем? Только, учитывая разницу в наборе программ, универсальный набор не просто сделать.
-
Лис
- Сообщения: 1639
- ОС: Zenwalk
Re: Оптимизация и компиляция: две подружки - налётчицы
Лично я ускорение запуска программ заметил при переходе на Джинту, скорость РАБОТЫ я не мерил, думаю не уменьшилась smile.gif сейчас у меня рядом с Джинту стоит Кубунту 7.04 и я готов проверить и выложить результаты быстродействия и времени запуска программ.
Вы посты других людей читаете?