оптимизация под железо

Приветствую!

Заинтересовал вопрос, насколько выгодно на практике компилить все из сорцов.
Каков прирост производительности скомпиленных под конкретную архитектуру программ, в отличие от бинарных версий.
Если есть какие-то статьи на эту тему, буду оч признателен, если подскажете.
Например, хотелось бы увидеть какие-нибудь конкретные тесты на конкретных типах программ на каком-либо железе,
также каково влияние степеней оптимизации в make.conf?

Я видел только

Я видел только про freebsd сравнение про разные -O... В оптимизации выше -O2 смысла нет. А производительность я хочу проверить сам, поставить на одну машину и Генту, и ArchLinux, пока прикидываю, как бы сравнить поподробнее (-:Е


Пожалуйста, не описывайте своё железо в подписи

На ноуте openoffice

На ноуте openoffice 2.4.0 скомпиленный запускается 6 сек. в первый раз, после первого запуска 1-2 сек.

Бинарный тойже версии - первый раз 8-10 сек. После первого запуска 2-4 секунды. Документ "*.doc" бинарным открывается значительно дольше чем скомпиленным.

По флагам - что -O3, что -O2 на машинах с интеловскими процами разницы не видел. На остальных не пробовал.

Жуткого прироста производительности от компиляции (по сравнению с другими дистрами) ждать не стоит. Ставил убунту 7,8 для тестов, она как известно бинарная, так вот OO очень быстро там открывался, программы субъективно не медленнее запускались. И в целом достаточно шустренько всё работало.

В целом вопрос для гентушников не стоит в том - что лучше компилять или не компилять, если используешь этот дистр - однозначно первое. Причём предварительно надо убедиться что оптимизации прописаны под твой комп (ибо в отличии от другово дистрибутива кроме тебя это никто не сделает). Причём тонкой настройком помимо того, что описано на gentoo-wiki выжать много производительности как правило не получается, в большинстве случаев это даже незаметно. А вот если с неправильными флагами оптимизации что-то собрано, перекомпиляция с верными может значительно улучшить ситуацию.

Sony Vaio SZ460 Premium, Core2Duo 2.0, hdd=200G:7200, mem=2G, hybrid video: nvidia 7400 + GMA 950

> насколько

> насколько выгодно на практике компилить все из сорцов

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

> Каков прирост производительности скомпиленных под конкретную архитектуру программ, в отличие от бинарных версий

Статей под рукой нет. Но их читал, при желании - найдёте. От 8 до 20 % примерно. Даже на этом форуме был подробный отчёт о выигрыше при смене Debian на Gentoo на супер кластере в НИИ.

Hardened Gentoo -

Hardened Gentoo - ТОЛЬКО компиляция.
На hardened потери до 3% производительности.

это цена защиты

это цена защиты от уязвимостей, и она будет у всех.

Соглашусь, что

Соглашусь, что основной прирост производительности происходит за счет оптимизации под конкретные задачи.
Тем не менее, немаловажна и оптимизация под процессор. Например для Pentium4 флаг march=pentium4 действительно даст серьезный прирост по сравнению со "стандартным" mtune=686.

А самое

А самое главное-то забыл...
Основной прирост все-таки зависит от "кривизны" рук. Gentoo можно "наоптимизировать" так, что Windows Vista даст 100 очков форы такому Gentoo.
Соответственно, Ubuntu в стандартной поставке куда быстрее криво наоптимизированного Gentoo :)

Всё понятно

Вам сюда ;)

Из ОСНОВ как

Из ОСНОВ как бы:

Эксперименты над сборками GCC показали, что производительность получаемого пакета увеличивалась (в зависимости от аппаратного обеспечения) от 10 до 200 % по сравнению с бинарными сборками gcc, поставляемыми другими дистрибутивами. Наработки, увеличивающие производительность, были включены в официальный релиз gcc 2.95, благодаря чему другие дистрибутивы также получили дополнительный прирост в производительности. Начиная с этого момента, Enoch начал приобретать репутацию «быстрого» дистрибутива, после чего было принято решение сменить название на Gentoo Linux.

Скорость действительно зависит от рук. Например, используя prelink можно ускорить вдвое запуск программ, как в Gentoo, так и в Debian. Монтируя /tmp в tmpfs (kvm+swap) по инструкции от Д.Робинсона можно также добиться существенного прироста В ЛЮБОМ дистре. Но бинарная Ubuntu, если собирается под i386, то на старших моделях CPU будет по любому проигрывать. На сколько - другой вопрос, ищите, сравнивайте...

от задач тоже

от задач тоже зависит, например openssl при пересборках сообщает что его оптимизированная версия которую я заюзал при пересборках из-за своей архитектуры ломает ABI, а неоптимизированная I686 имет "ужасающюю" производительность и просит при глюках прог зависящих от openssl пересобрать их. Собсно программы (де)кодирования аудио/видео сильно зависят нетолько от USE но и от флагов оптимизации вроде tree-vectorize... но это всё нада тестить и настраивать, риск сделать нестабильную систему велик, и стоит-ли потраченное время достигнутого результата решать юзеру. Если сидеть потоянно что-то перекодировать то пара дней тестов через некоторое время очень даже и окупятся.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".