Debian за Българи!

Всичко за Debian Gnu/Linux

Prelink – система за ускоряване времето на стартиране на приложения

Публикувано от IV4O на януари 6, 2008

Какво е Prelink?
Бавят ли ви се програми при стартирането им? Искате да подобрите бързодействието им? Решението на проблема се нарича Prelink. Това е свободен софтуер, чийто създател е Джейкъб Джелинек от Red Hat, служещ за ускоряване времето на стартиране на приложенията. Как работи той? За да функционират нормално, програмите се нуждаят от библиотеки. Библиотеките се интегрират в тях, посредством така нареченото link-ване (от анлг. връзка, съединение). Съществуват два вида статично, при компилираните и динамично, при бинарните пакети. При повечето малки програми динамичното линкване е сравнително бързо, но при по-големите, писани на C++ и тези, които имат зависимости с повече библиотеки, отнема доста време. Prelink редуцира това неудобство при динамичното линкване, като модифицира бинарните файлове и библиотеките по специфичен начин, за да ускори тяхното зареждане. В общи линии пренарежда блоковете, от които са изградени и начина по който се зареждат – премества ги в определено място или ги линква от изпълним файл. Промените и са напълно обратими. Този способ е широко използван в Gentoo и според тестовете, направени от разработчиците на тази дистрибуция – ефектът е над 50% по-малко време за зареждане на KDE приложения, Firefox, OpenOffice.org и още много други.

Инсталиране и конфигурация
Prelink е портнат в stable, testing и unstable хранилищата на Debian, така че за да го инсталираме е необходимо да изпълним в терминала само:

sudo apt-get install prelink

За да накараме системата да го ползва, трябва да редактираме с любимия си текстов редактор като root файла /etc/default/prelink – да намерим този редове:

PRELINKING=unknown

PRELINK_FULL_TIME_INTERVAL=14

и да го заменим с:

PRELINKING=yes

PRELINK_FULL_TIME_INTERVAL=7

Стартирането на програмата първият път отнема повечко време (но това е само първият път), около 10 мин, в зависимост от машината и става с командата

sudo /etc/cron.daily/prelink

За да не изпълняваме тази команда периодично, можем да я добавим в конфигурационния файл на apt и да се изпълнява автоматично след инсталацията на всяко ново приложение – ще забавя инсталацията му с около минутка. Това става като отново с администраторски права редактираме файла /etc/apt/apt.conf , като добавим следния ред:

DPkg::Post-Invoke {”echo Running prelink, please wait…;/etc/cron.daily/prelink”;}

или го създадем, ако не съществува такъв.

Забележка 1: При първото стартиране на Prelink можем да го пуснем с някоя опция като:

sudo /etc/cron.daily/prelink -а

По този начин ще се прелинкват всички бинарни файлове и библиотеки. Можем да ползваме някоя и от другите опции, за повече информация:

man prelink

Забележка 2:: Това ръководство е напълно вярно и за Ubuntu, но без версиите от Feisty нагоре, тъй като те използват друг способ за постигане на този ефект и не е препоръчителна употребата на Prelink.

Източник 1
Източник 2
Източник 3
Източник 4
Източник 5
Източник 6
Източник 7

Ивайло ГЕОРГИЕВ

3 коментара за “Prelink – система за ускоряване времето на стартиране на приложения”

  1. В. Василев каза

    DPkg::Post-Invoke {”echo Running prelink, please wait…;/etc/cron.daily/prelink”;} – това работи
    DPkg::Post-Invoke {”echo Running prelink, please wait…;/etc/cron.daily/prelink”;} – това, не работи – проблем с “Кавичките”. Поносима грешка, не е болка за умиране но ще побърка някой по-нов.

  2. Kulu каза

    Интересното е, че нямам apt.conf, но ако създам /etc/apt/apt.conf.d/02prelink, то тогава всичко заспива.

    Браво за статията и всичко най-свежо от мен :)

  3. IV4O каза

    Благодаря!

Вашият коментар

XHTML: Може да използвате тези тагове: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>