Уменьшаем время запуска программ с помощью prelink


Дата: 27 августа 2010





Как работает prelink
Во время запуска программы, она связывается со своими библиотеками, необходимыми для работы (например Qt или GTK). Библиотеки подгружаются динамически и на это требуется довольно много времени из-за чего мы и ждем пока запустится программа. Особенно это актуально для пользователей KDE так как подгружается огромная и навороченная библиотека вывода графических приложений - Qt.
Утилита Prelink позволяет связать все подгружаемые библиотеки непосредственно с исполняемыми файлами программ. Prelink - это механизм предварительного связывания необходимых библиотек с программой. И это даёт очень большой прирост производительности! Многие отмечают, что теперь "холодный" старт программы занимает до 50% меньше времени, чем это было до "прелинкинга". В основе prelink по сути лежит старый-добрый механизм кэширования.

Установка
Давайте рассмотрим установку на примере Debian (если у вас другой дистрибутив, то просто замените apt на свой пакетный менеджер (например yum)):
От суперпользователя!

apt-get install prelink

-Устанавливаем программу.

Теперь нужно отредактировать конфигурационный файл программы prelink:
От суперпользователя!

nano -w /etc/default/prelink


Если вы нашли строку такого вида: PRELINKING=unknown, то измените её на PRELINKING=yes
Это включит prelink.
По желанию в конфигурационном файле можно настроить интервалы работы программы.

Теперь, когда все установлено и настроено можно запустить процесс прелинкинга:
От суперпользователя!

prelink -avfmR

-Эта команда начнет прелинкинг приложений. Обычно команда выполняется несколько минут. Увеличение скорости запуска программ, будет заметно после перезапуска приложений.

Для ознакомления с полным списком опций утилиты prelink выполните prelink --help

Комментарии:
Автор: Сергей,   дата: 27 августа 2010   12:25:54
Спасибо! Интересная штука попробуем.
Автор: andre,   дата: 27 августа 2010   13:18:51
реально быстрее, только что поставил на убунту. Посмотрим как будет дальше. Из датчиков, возросла нагрузка на своп файл.
Автор: Subsanek,   дата: 27 августа 2010   13:25:31
>Из датчиков, возросла нагрузка на своп файл.

Побочное явление прелинкинга - увеличение используемой памяти, что не удевительно т.к по сути это кэширование.
Автор: Анон,   дата: 27 августа 2010   13:58:40
>так как подгружается огромная и навороченная библиотека вывода графических приложений - Qt.

Во-первых, размер библиотек не имеет ни какого значения. Имеет значение их количество.
Во-вторых, в этом вашем Гноме посмотрите зависимости любой гномо-проги, вот уж кому точно нужен prelink.
В-третьих, не пишите о том, в чем не разбираетесь. Еще лучше, не пишите вообще.
Автор: Subsanek,   дата: 27 августа 2010   14:39:12
>Во-первых, размер библиотек не имеет ни какого значения.

С каких пор?

>Во-вторых, в этом вашем Гноме

Я на KDE

>не пишите о том, в чем не разбираетесь. Еще лучше, не пишите вообще.

Взаимно)
Автор: Анон,   дата: 27 августа 2010   14:44:47
> После выполнения команды необходима перезагрузка.

а это еще зачем ?
вендовые привычки ?
Автор: Subsanek,   дата: 27 августа 2010   15:13:11
>а это еще зачем ?

Чтобы увидеть результать работы сабжа.

>вендовые привычки ?

Откуда у меня они?
Автор: marlock,   дата: 27 августа 2010   15:52:14
> Откуда у меня они?

убунта же
Автор: Subsanek,   дата: 27 августа 2010   16:14:20
>убунта же

И причем здесь Windows? И вообще я на Debian.
Автор: lexa,   дата: 27 августа 2010   16:57:47
Самый странный момент в блогозаписи - это необходимость перезагрузки после прелинковки, зачем это делать? и что будет если не перезагружаться?
Автор: Subsanek,   дата: 27 августа 2010   17:17:03
Уточнил - "Увеличение скорости запуска программ станет заметно только после перезагрузки".
Автор: bosha,   дата: 27 августа 2010   17:32:34
Увеличение скорости запуска программ, будет заметно после перезапуска приложений.

Таки вот так правильно. Перезагрузка нужна исключительно ядру, а на него prelink не особо действует. Точнее вообще не влияет. И вообще сомнительный прирост это даст. В Gentoo - да. При правильных настройках даст примерно от 10% до 30%. В Debian - вряд ли на глаз будет что-то заметно. Только в довольно специфичных тестах.
Автор: Subsanek,   дата: 27 августа 2010   17:37:51
bosha, утилита еще и скорость старта системы увеличивает.
Что касается дистрибутивов, то да - в разных дистрибутивах совершенно разные результаты, но пробовать стоит)
P.S Скоро все-же перейду на генту и будет мне счастье с prelink. В gentoo с prelink намного быстрее все крутится по словам marlock'а.
Автор: NoFaTe,   дата: 16 октября 2010   00:25:31
Извиняюсь что встреваю в Ваш диспут но на каких вы машинах сидити что так дрожите несколькими % процессов, на работе у меня Слака, 4 гига озу и ссд накопитель на 30гб для оси проц Intel Cruo2Duo на 3г. ни каких тармазов не чуствую мое мнение если у пользователя руки крывые и prelink не поможет.
Автор: Subsanek,   дата: 16 октября 2010   11:25:22
Собственно при таком железе у вас и не должно ничего тормозить. У меня слабый ноутбук и на нём очень большая проблема с производительностью.
Да и уменьшать время запуска программ хотябы для экономии драгоценного времени имеет смысл.
Автор: Avari,   дата: 04 января 2011   12:15:26
Привет чайникам ;)
Prelink в Ubuntu уже давно не нужен. Тема на понятном русским ;) языке раскрыта здесь:
http://uptimebox.ru/2007/12/prelink-dtgnuhash.html
Там же есть ссылки для тех, кто хочет подробностей.
Вкратце - feature называется DT_GNU_HASH, это другой метод ускорения загрузки программ с большим количеством подключаемых библиотек, но результат похожий. И ничего не надо дополнительного делать - в стандартном дистрибутиве Ubuntu всё уже сделано и работает... И prelink после каждого изменения в пакетах не нужен.
Preload желающие включить могут, конечно, но лично меня он раздражает. Его как раз включили в vista & w7, именно из-за него, как я понимаю, они после загрузки очень долго мучают винчестер. Ускорения работы от prelink'а я не чувствую, и Ubuntu ведёт себя в этом смысле приличнее: загрузилась, погасила индикатор винчестера, не крутит сторонние задачи и не притормаживает ими интерфейс пользователя ;) (вот это в wiindows как раз и чувствуется, а не ускорение запуска).
Автор: Avari,   дата: 04 января 2011   12:17:10
"Ускорения работы от prelink'а я не чувствую"...
Извините, описка: здесь имелся в виду _preload_.
Автор: АмЫнЪ,   дата: 18 марта 2011   03:09:46
NoFaTe. Меня удивляют люди которые вместо того что бы заделать течь, покупают более мощьный насос. О.о




 
Добавить комментарий:
Имя: *
e-mail:
Комментарий: *
Введите число 65: *


Архив статей:
Май 2017
Март 2017
Апрель 2016
Март 2016
Октябрь 2013
Сентябрь 2013
Май 2013
Март 2013
Ноябрь 2012
Июль 2012
Июнь 2012
Апрель 2012
Март 2012
Февраль 2012
Апрель 2011
Март 2011
Февраль 2011
Январь 2011
Декабрь 2010
Ноябрь 2010
Октябрь 2010
Сентябрь 2010
Август 2010
Июль 2010
Июнь 2010
Май 2010
Апрель 2010
Март 2010

Случайные:
Фонд свободного программного обеспечения и копилефт.

XRandR: настройка режимов работы с дисплеями (мониторами) в GNU/Linux

Переносные репозитории linux'а

Работайте в консоли с привычным комфортом!

Автоматическая смена обоев в GNOME и KDE

Настройка USB модемов для подключения к интернету





Коллеги:    все
 Linux для всех

Наши баннеры:
linuxnow.ru
linuxnow.ru
Установить баннер