Уменьшаем время запуска программ с помощью 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 (MSK).
Спасибо! Интересная штука попробуем.
Автор: andre,   дата: 27 августа 2010 ,  время: 13:18:51 (MSK).
реально быстрее, только что поставил на убунту. Посмотрим как будет дальше. Из датчиков, возросла нагрузка на своп файл.
Автор: Subsanek,   дата: 27 августа 2010 ,  время: 13:25:31 (MSK).
>Из датчиков, возросла нагрузка на своп файл.

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

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

С каких пор?

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

Я на KDE

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

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

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

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

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

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

убунта же
Автор: Subsanek,   дата: 27 августа 2010 ,  время: 16:14:20 (MSK).
>убунта же

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

Таки вот так правильно. Перезагрузка нужна исключительно ядру, а на него prelink не особо действует. Точнее вообще не влияет. И вообще сомнительный прирост это даст. В Gentoo - да. При правильных настройках даст примерно от 10% до 30%. В Debian - вряд ли на глаз будет что-то заметно. Только в довольно специфичных тестах.
Автор: Subsanek,   дата: 27 августа 2010 ,  время: 17:37:51 (MSK).
bosha, утилита еще и скорость старта системы увеличивает.
Что касается дистрибутивов, то да - в разных дистрибутивах совершенно разные результаты, но пробовать стоит)
P.S Скоро все-же перейду на генту и будет мне счастье с prelink. В gentoo с prelink намного быстрее все крутится по словам marlock'а.
Автор: NoFaTe,   дата: 16 октября 2010 ,  время: 00:25:31 (MSK).
Извиняюсь что встреваю в Ваш диспут но на каких вы машинах сидити что так дрожите несколькими % процессов, на работе у меня Слака, 4 гига озу и ссд накопитель на 30гб для оси проц Intel Cruo2Duo на 3г. ни каких тармазов не чуствую мое мнение если у пользователя руки крывые и prelink не поможет.
Автор: Subsanek,   дата: 16 октября 2010 ,  время: 11:25:22 (MSK).
Собственно при таком железе у вас и не должно ничего тормозить. У меня слабый ноутбук и на нём очень большая проблема с производительностью.
Да и уменьшать время запуска программ хотябы для экономии драгоценного времени имеет смысл.
Автор: Avari,   дата: 04 января 2011 ,  время: 12:15:26 (MSK).
Привет чайникам ;)
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 (MSK).
"Ускорения работы от prelink'а я не чувствую"...
Извините, описка: здесь имелся в виду _preload_.
Автор: АмЫнЪ,   дата: 18 марта 2011 ,  время: 03:09:46 (MSK).
NoFaTe. Меня удивляют люди которые вместо того что бы заделать течь, покупают более мощьный насос. О.о



 
🖊 Добавить комментарий:
Ваше имя: *
Комментарий: *
Введите число 43: *


Архив статей:
Ноябрь 2018
Октябрь 2018
Май 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

Случайные:
Hotot — красивый и функциональный twitter-клиент под Linux

Игры в Linux. Эмуляторы консолей Nintendo.

Книги о Linux - Часть 2

Сравнение уровня перекрёстных помех (гхостинга) на затворной и поляризационной технологиях воспроизведения 3D

Анализатор использования дисков Baobab

Выполнение скриптов PHP в Geany

Рулонный газон виды рулонного газона.

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

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