Чи є сенс у використанні Prelink більше?


11

Протягом багатьох років, використовуючи різні вікна Linux, я потрапив у звичку використовувати ритуальне попереднє посилання для прискорення завантаження програм.

Однак переваги запуску попереднього посилання нівелюються щоразу, коли пакет перевстановлюється, оскільки його, всі його залежності та залежні його потреби потрібно повторно пов’язати.

Це попереднє посилання може спричинити декілька проблем, і одна з таких ситуацій - це двійкова інвалідність MD5, яка є проблематичною для речей, які порівнюють MD5 з версією версії потоку чи використовує MD5 для визначення того, змінили чи ні бінарні файли, і таким чином не хочеться очищати при видаленні пакета. .

Останнім часом комп’ютери стали набагато швидшими, і тепер вигідність прибутковості передпосилання майже не помітна.

Чи використання прелінку все ще є раціональною концепцією, або її можна випадково відкинути та залишити як щось із минулої епохи?

Відповіді:


4

Ви не можете прочитати його до 23 липня 2009 року, якщо ви не підписалися на LWN.net, але http://lwn.net/Articles/341244/ може бути корисним.


Тоді ви можете надати "посилання на підписку" на цю статтю.
wazoox

5
Мені завжди погано користуватися абонентськими посиланнями. Наче я їх зриваю чи щось.
Девід Пашлі

2
Я згоден. Я не проти надавати абонентські посилання на прямі контакти (друзів чи колег), коли натрапляю на цікаву статтю, але почувати її неправильно публічно.
Крістофер Кашелл

1

Я б не сказав, що його слід довільно відкинути, однак я б точно сказав, що про його використання слід подумати трохи більше.

На сучасній машині вищого класу, яка часто оновлюється, попереднє посилання може бути не корисною оптимізацією. Однак є ще ряд випадків, коли це варто було б використати. Наприклад, на старшій або нижній верстатах або на машинах, які є досить статичними і не зазнають частих змін або оновлень. Це також може бути корисним, якщо у вас високий показник запуску програм багаторазово (я можу придумати кілька ситуацій, коли у вас можуть бути програми, які запускаються швидко, або паралельно, коли попереднє посилання може покращити продуктивність).

Загалом, потрібно розглянути вашу конкретну ситуацію, а потім вирішити, чи переваги переважують додаткові роботи та зусилля.


1
"висока швидкість запуску програм багаторазово" - якщо ви знаходитесь у цій ситуації, бінарні файли та бібліотеки опиняться у кеші вашої файлової системи. Єдиний час, коли передпосилання допоможе, це якщо ти настільки голодуєш на пам'ять, що у тебе дуже мало кеш-файлу
Даніель Лоусон,

2
Попереднє посилання прискорить запуск програми, навіть якщо програма зберігається в кеші файлової системи. Справді, коли програма (та пов'язані з нею бібліотеки) кешуються, підвищення продуктивності є менш помітним. Однак, залежно від швидкості запуску програм, можна додати кілька мікросекунд, щоб врешті змінити значення.
Крістофер Кашелл

1

Я б сказав, що попереднє посилання, безумовно, корисне на багатокористувацьких настільних серверах, таких як LTSP-сервери, які використовуються, наприклад, у школах та мережах кафе. Попереднє посилання не тільки прискорює завантаження програм, але також покращує використання оперативної пам’яті та обмітання диска за рахунок суперечок між користувачами, що дозволяє набагато більше одночасних користувачів на сервері.


0

Я думаю, що ціни на запам’ятовування, що падають, стають менш корисними. Якщо ви все ще хочете трохи прискорити роботу, ви можете розглянути попереднє завантаження .


Я спробував передзавантажити, я просто виявив, що це робило час запуску повільніше, поки він сидів там, жуючи обидва сердечники, роблячи річ на голову. І я також чомусь не можу зрозуміти, що X помер під час завантаження. Крім того, якщо ви не перезавантажуєтеся часто, попереднє завантаження зовсім не стане корисним.
Кент Фредрік

0

Я залишаю це рішення у версії ОС. Якщо за замовчуванням ОС вибирає регулярний виклик прелінку за допомогою cron, то чудово, можливо, це не так корисно. Я сподіваюся, що творці дистрибутивів задумалися перед тим, як вибрати за замовчуванням опцію додавання / видалення попереднього посилання. Тому я йду з ними, а не аналізую речі знову.


Е, це не дійсно за замовчуванням, його пакет, який ви повинні встановити, і якщо його не встановлено, ви не отримаєте попередньо пов’язані речі. Якщо його встановлено, воно, як правило, створює крон-скрипт, який вимкнено за замовчуванням, який потрібно ввімкнути вручну.
Кент Фредрік

Він є типовим для Fedora, а не за умовчанням. Він відхилений до 19, але не вимикається. Це було те саме з Fedora 6 або 7.
Саураб Бар'ятія

0

Gentoo використовує попереднє посилання. Вони обходять проблему md5sum, ігноруючи курку інформації про попереднє посилання, обчислюючи хеш.

Prelink завжди сприятиме підвищенню швидкості, хоча це може ставати все менш помітним, оскільки апаратне забезпечення стає швидшим. Єдиний спосіб точно знати на вашому обладнанні - це вимкнути попереднє посилання та побачити, як вам подобається уповільнення запуску додатків.

Sidenote: OS X використовувалась також для форми попереднього посилання, але це було відмовлено на користь пов'язаного кешу, який пов'язаний підтримує сам. Кращий з обох світів, без бінарних змін і без реальних накладних витрат у порівнянні із звичайними зв'язками. Я сподіваюся, що Linux в якийсь момент підхопить цю ідею :)

Оновлення: Нещодавно я спробував попередньо посилання на Linux , і для складання cscope з багатьма файлами та процесами я отримав 5% -ве збільшення швидкості.


1
Це насправді ... все-таки щось, що вам потрібно встановити та налаштувати, я говорю це, тому що я використовую gentoo. І ви не можете точно "вимкнути" попереднє посилання, ви можете лише припинити запускати попереднє посилання, або перейти і відключити всю систему. Також, чомусь невідоме мені, paludis має проблеми з попередньо зв'язаними бінарними файлами, і без гачка для відміни передпосилання (непідтримується) він залишає бінарні файли позаду, даючи суворість. Нещодавно я виявив кілька додатків KDE, які фактично залишилися позаду, перш ніж я встановив гачок, і вони були на шляху до того, як новіші в іншому місці, спричиняючи сегменти
Кент Фредрік,

Можливо, включення оптимізації лінкера (-Wl, -O1) ¸ та нових змін у розподілі gnu-hash більше схоже на те, до чого перейшов OSX, що, можливо, є більш ефективним вибором.
Кент Фредрік

Я мушу визнати, що минув час, коли я використовував gentoo ... я з тих пір перейшов на OS X :). Я пам’ятаю тест, який я колись робив на OS X: запускати всі програми одразу та час (приблизно 1 хвилина iirc). Потім видаліть всю інформацію про попереднє посилання та запустіть усі програми заново. На той час минуло 5 хвилин ... Це було в 2005 році на вежі Мака, справжній звір.
w00t

1
На противагу вашій ідеї, що прискорення попереднього зв’язку може стати менш помітним: вони, швидше за все, стануть більш важливими, оскільки програми злітають в раціональному режимі при використанні ліній, що завантажуються під час виконання. Гвім з 2009 року використовував 55 лінз часу виконання. Один з 2 років тому використовував 73. 'mount' з 2009 року використовував 7, mount з сьогоднішнього дня, використовує 10 з 4 з них у / usr / lib64 та 6 в / lib64 ... тому вони розширюються, стають більшими та розширюються . - Так само, як це було колись - як тільки HW стає швидше, SW стає набагато складнішим, щоб заспокоїти прискорення.
Астара

@astara правда, але зростання використання бібліотеки не такий швидкий, як зростання жорсткого диска та швидкості пам’яті.
w00t
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.