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
Ивайло ГЕОРГИЕВ
В. Василев каза
DPkg::Post-Invoke {”echo Running prelink, please wait…;/etc/cron.daily/prelink”;} – това работи
DPkg::Post-Invoke {”echo Running prelink, please wait…;/etc/cron.daily/prelink”;} – това, не работи – проблем с “Кавичките”. Поносима грешка, не е болка за умиране но ще побърка някой по-нов.
Kulu каза
Интересното е, че нямам apt.conf, но ако създам /etc/apt/apt.conf.d/02prelink, то тогава всичко заспива.
Браво за статията и всичко най-свежо от мен
IV4O каза
Благодаря!