Недоліки використання попереднього завантаження? Чому він не включений за замовчуванням?


110

Хотілося б знати, які недоліки використання preload? Якби не було недоліків, він preloadбув би включений за замовчуванням, тому я думаю, що їх є.

Гаразд, вам потрібно трохи більше оперативної пам’яті, але більшість людей мають набагато більше оперативної пам’яті, ніж потрібна Ubuntu - тож які недоліки використання preload?


6
Дякую за корисне запитання. Я хочу знати, це міф?
Саїд Зарінфам

1
Використання процесора та акумулятор може бути недоліком для деяких ... bugs.launchpad.net/ubuntu/+source/preload/+bug/481861
Mateo

1
Приємне запитання. Деякі дистрибутиви завантажуються з попереднім завантаженням, наприклад, елементарна ОС (саме це я запускаю на своєму ноутбуці, оскільки гала є набагато швидшим, ніж єдність Ubuntu).

1
Лише здогадка: Однією з причин невключення його за замовчуванням є той факт, що він не використовується у всіх системах (його вимоги до апаратних засобів можуть відрізнятися від стандартних вимог).
don.joey

2
Публікація brainstorm.ubuntu.com/idea/1122 тут говорить про те, що це "те, що він працює як демон з привілеями root". Що може бути проблемою безпеки, є також цей мозковий штурм, який хоче, щоб це було включено за замовчуванням brainstorm.ubuntu.com/idea/14092
Матео

Відповіді:


65

Простіше кажучи, Preload не для всіх. Це чудово, якщо ви багато відкриваєте додатки чи бібліотеки. Це шкідливо, якщо ви завантажуєте програми та бібліотеки лише зрідка. Я буду використовувати два приклади з мого фактичного використання (і так, я використовую попереднє завантаження).

По-перше, Google Chrome. Тепер браузер відкривається лише один раз за кожне завантаження, можливо, двічі (для мене я веб-розробник). Chrome і пов'язані з ним бібліотеки залишаються в пам'яті, тому що я завжди ним користуюся. Навіть коли я закриваю всі хромовані вікна, це все ще на задньому плані робить свою справу. Таким чином, весь баран, присвячений утриманню попередньої копії Chrome, є повним і повним сміттям. Він ніколи (або рідко) розвантажується. Для пересічного користувача це стосується великої кількості програм. Користувач Office майже завжди відкриє свою програму електронної пошти. Тож невеликі заощадження часу запуску повністю витрачаються, оскільки вони відкривають свою електронну програму лише раз на день та залишають її відкритою.

Другий приклад - граблі. Як розробник рубіну, який вірить у тестування, я запускаю граблі TON. рейка працює, виконується пару секунд - потім виходить з ладу. Попереднє завантаження допомагає мені прискорити щоденну роботу, оскільки вона перед часом завантажує граблі та потрібні бібліотеки (що може бути дуже великим). Тож є багато запусків і зупинок до запуску граблів. Додатковий таран, який використовується для прискорення 400 або 500 запусків граблів протягом декількох годин, цілком вартий цього.

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

Нарешті, попереднє завантаження, навіть якщо ви його не використовуєте, споживає таран. Отже, якщо ви не запускаєте програми часто, ви можете фактично зробити всю вашу систему частково повільнішою, не маючи цього барана для інших типів кешування. Пам’ятайте, навіть якщо у вас є 32 гіга оперативної пам’яті, Linux спробує використати стільки, наскільки це можливо, для кешування даних, щоб зробити вашу взаємодію швидшою. Використовуючи попереднє завантаження, ви зменшите деяку кількість вільної пам'яті. Навіть якщо це лише трохи крихітки, 2 секунди, які ви зберегли, запустивши хром 1 раз, можуть коштувати вам 60 секунд протягом місяця, коли він залишається запущеним.


1
Також використання попереднього завантаження уповільнює завантаження. Чим більше матеріалів завантажено, тим більше часу потрібно для роботи системи. Тепер уявіть, що все, що ви хочете зробити, - це завантажитися, написати речення на пам’ятці та закрити одразу після цього. Ви будете чекати навіть змоги написати пам’ятку, оскільки ваша система попередньо завантажує речі, які, швидше за все, не пов'язані з цим завданням. Таким чином, певним чином, попереднє завантаження (загалом) - меч з двома острими.
F-3000

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

1
По-друге: Якщо попереднє завантаження передбачає неправильну схему використання (що може бути, якщо у вас постійно завантажуються програми), воно кешує речі, які згодом знову будуть витіснені з оперативної пам’яті, і, в свою чергу, виштовхує кеш із оперативної пам’яті, який у вас, можливо, був краще використовувати для. Але врешті-решт вона лише «споживає» оперативну пам’ять, як це робить кеш vfs - так це насправді оперативна оперативна пам’ять і, таким чином, «вільна ОЗУ» певним чином. Однак він конкурує з "нормальним кешем", як ви пишете.
hurikhan77

1
З огляду на вищевикладене coteyr та @ hurikhan77, чи погоджуєтесь ви, що Preload - це ефективний спосіб сприяти покращенню сприйнятої швидкості на старих низьких оперативної пам’яті (~ 800 МБ безкоштовно при запуску). FYI активація попереднього завантаження таких оновлених ящиків дасть менеджеру віртуальної пам'яті ядра багато роботи для невеликих покращень?
tuk0z

2
@lliseil Якщо 800 Мб справді нерозподіленої оперативної пам’яті, попереднє завантаження може допомогти… Але це, ймовірно, працює краще з більшою кількістю оперативної пам’яті. А це, в свою чергу, означає: Попереднє завантаження буде конфліктувати з голодними на пам'ять програмами, які ви можете запустити пізніше. Тут може знадобитися зниження простоти, що, можливо, робить передзавантаження непотрібними, як тільки ви будете використовувати занадто багато оперативної пам'яті.
hurikhan77

21

Питання, яке задав бунт'є Саїд Зарінфам 5 вересня 2012 року:

Привіт усім, я хочу знати, це міф? Чи справді [попереднє завантаження] покращує мою ефективність? Які недоліки його використання? У мене ноутбук з цією специфікацією (процесор Core i5, 4 Гб оперативної пам’яті, жорсткий накопичувач на 128 ГБ). Дуже дякую.

  • Немає реальної потреби в попередньому завантаженні, якщо у вас є SSD
    • Це пояснюється тим, що SSD- диски забезпечують набагато швидший час випадкового доступу, ніж жорсткі диски, тому "попереднє завантаження" бінарних файлів / залежностей в пам'яті - марно, IMO
    • Основний недолік тоді полягає в тому, що попереднє завантаження "використовує" додаткову пам'ять, не надаючи відчутної переваги.

20
Це не стосується питання ОП, як існують недоліки використання попереднього завантаження? По-друге, ви сформували думку, зробили заяву про "попереднє завантаження" і потім ввели "SSD" в рівняння. У який момент ви насправді збиралися відповісти на запитання?
Рінгтейл

12

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

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

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

Тепер, коли говориться, здається, що попереднє завантаження - це велика корисна програма, і це може бути.

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

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

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

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

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

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

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

1 Джерело: техтроб

2 Джерело: Попереднє завантаження - Адаптивний демонтаж попереднього вибору Бегдада Есфахбода - Дисертація, подана відповідно до вимог до ступеня магістра наук - Випускник кафедри комп’ютерних наук - Університет Торонто Авторське право (c) 2006 р. Бегдад Есфахбод.


1
Дякую за вашу відповідь, Мітч. Це були і мої думки. Особливо, проблема з попереднім завантаженням ноутбуків може бути проблемою. Але все ж я хотів би знайти офіційне джерело / дискусію про те, чому команда Ubuntu вирішила проти попереднього завантаження.
Glutanimate

9

Недоліки? Є НІКОЛИ!

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

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

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

див. статтю

Якщо ви постійно використовуєте звичайні додатки, такі як Firefox або Gimp, ви помітите деякі значно покращені терміни завантаження. Попереднє завантаження - демон, який дискретно працює у фоновому режимі і жодним чином не порушить ваш робочий стіл. Користувачі Ubuntu можуть встановити попереднє завантаження за допомогою:

sudo apt-get install preload

Результати:

Графік, що показує різницю між нормальним та початковим завантаженням

реф


3
Я знаю, що це за доза, і я прочитав кілька "попередніх завантажень HowTos", але ніде не зміг прочитати щось про недоліки. Якби не було зворотних зворотів, він буде доставлений за замовчуванням з багатьма дистрибутивами Linux - але, наскільки я знаю, - це не так.
Paradiesstaub

1
Продуктивність не знижується , а збільшується . У цьому вся суть використання попереднього завантаження. Можливо, це просто помилка друку.
Марко

2
Ваша діаграма виглядає чудово, але їй бракує важливої ​​інформації. Це на 100% підходило б до Powerpoint презентації продавця, але це приклад "поганої статистики". Звідки беруться ці цифри? Який протокол був використаний для їх запису? Чи це один знімок? Скільки машин було залучено до вибірки? Що було обладнання? Як налаштована програма попереднього завантаження?

1
@Ringtail: Ти маєш рацію. Ви не автор цієї діаграми. Але якщо ви перейдете по всіх посиланнях у статтях, ви перейдете на сторінку Techthrob.com, на якій повинна бути розміщена стаття, написана автором програми. Але ця сторінка пішла. Тож є лише джерело: теза автора.

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