prelink

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки форм спам-ботами.
Смайлики
:grin: :-) :-( :o 8-0 :lol: :-x :-P :oops: :cry: :evil: :twisted: :roll: ;-) :idea: :heart: :hang: :stop: :crazy: :hello2: :shock: :wall:
Ещё смайлики…

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[flash] ОТКЛЮЧЕН
[url] ВКЛЮЧЁН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: prelink

Re: prelink

Дыбра » Ср май 05, 2010 23:28

Да нет, нормально там все с обновляемостью. После обновления библиотек опять запускается команда "prelink -avfmR" и все зависимости анализируются по-новой. Хотя в принципе соглашусь, что на серверах оно скорее всего значительного прироста не даст, так как запуск чего-либо там вещь довольно редкая.

Re: prelink

57EA17h » Ср май 05, 2010 23:24

что плохо у предварительного связывания, ОСь становится очень плохо обновляема, т.к. нашли, например, в glibs ошибку, вышел патч. Глибы и так долго собираются, а если за ней, даже при малейшем фиксе, нужно будет практически всю систему пересобирать - пошлёшь всё к чёрту достаточно быстро. Может на рабочих станциях ещё и оправдано, на серверных платформах - вряд-ли, ведь обычно на сервере всё один раз запустилось и ушло на много-много дней в постоянную работу.

prelink

Дыбра » Вт май 04, 2010 23:13

Натолкнулся тут на эту штуку. Реально так ускоряет работу системы в целом и загрузку программ в частности за счет динамического связывания программ.
Один из резервов верховного главнокомандования в деле повышения быстродействия Linux-системы - механизм предварительного связывания или, по простому, прелинкинга (prelinking).

Чтобы разобраться, что происходит при прелинкинге, нужно вспомнить о том, что подавляющее большинство Linux-приложений не содержит в себе весь необходимый для их работы код, а использует т.н. разделяемые библиотеки. И обычно программы при сборке связываются с такими библиотеками динамически, то есть необходимые функции вызываются из них в ходе загрузки программы. В одних случаях это происходит быстро, в других - раздражающе медленно. Печальным примером последнего является KDE - в частности, из-за громоздкости и сложности опорной библиотеки Qt, написанной на Си++. И бороться с этим перекомпиляцией и оптимизацией почти бесполезно - выигрыш в скорости не превышает нескольких процентов.

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


Для работы достаточно установить пакет prelink (он есть в большинстве дистрибутивов) и запустить команду

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

prelink -avfmR


Разница заметна :)

Вернуться к началу