войти зарегистрироваться

Linux для всех whois

индекс
181,26

Ускорение запуска программ с помощью Preload

Preload - демон, работающий в фоне, который собирает информацию о наиболее часто используемых программах, кеширует их и используемые ими библиотеки, что приводит к повышению скорости загрузки программ. Используя Preload вы можете с пользой потратить гигабайты неиспользуемой оперативной памяти (конечно если они у вас есть).


Инсталяция




sudo apt-get install preload

или http://preload.sourceforge.net/


Настройка



Конфигурация программы храниться в файле /etc/preload.conf, стандартные значения должны подойти большинству пользователей. Но если вы хотите настроить все по своему, милости просим. Ниже описаны самые основные настройки, подробности, как всегда в документации или в статье, написанной разработчиком Preload.

Опция / Значение по умолчанию / Описание
model.cycle / 20 [секунд] / Как часто Preload будет опрашивать систему на предмет используемых программ и библиотек.

model.halflife / 168 [часов] / Как часто Preload будет забывать старую, накопившуюся информацию. Каждый раз, накопленная статистика будет терять 50% своего значения.

model.minsize / 2000000 [байт] / Нечто вроде ограничения на размер программы или библиотеки, на которую будет Preload обращать внимание. Если вы хотите, чтобы кешились мелкие программки - уменьшите значение, только для крупных, соответственно увеличьте это значение.

Использование памяти, считается по формуле:

(Всего RAM x model.memtotal) + (RAM доступная при старте x model.memfree) + (Кеш x model.memcached)

model.memtotal / -10%
model.memfree / 100%
model.memcached / 30%

Стандартные значения, как уже упоминалось, должны подойти большинству людей, так что не меняйте их без особой на то необходимости.

Статистика



Если вам интересно, какие ресурсы на данный момент использует Preload, можете посмотреть на это в его лог-файле:

sudo tail -f /var/log/preload.log

Еще больше информации можно получить, глянув на файл /var/lib/preload/preload.state

Но вам совершенно не обязательно обращать внимание на все эти файлы, позитивные результаты будут и без этого.


А теперь цифры



Пройдет немного времени, прежде чем Preload определит и поймет ваши типичные программы для работы, так что не надо надеяться, что увеличение скорости загрузки произойдет прямо сейчас.

Здесь представлены некоторые сравнительные результаты из статьи, этим измерениям несколько лет, но это не должно помешать вам увидеть относительную эффективность работы Preload.
Application"Cold" Startup TimePreloaded Startup Time% Improvement
Desktop Login30s23s23%
OpenOffice.org Writer15s7s53%
Firefox11s5s55%
Evolution9s4s55%
Gedit Text Editor6s4s33%
Gnome Terminal4s3s25%


Cold start vs Preload

Надеюсь, информация окажется полезной.
По материалам Techthrob.com

комментарии (56)

  • НЛО прилетело и опубликовало эту надпись здесь.
    • НЛО прилетело и опубликовало эту надпись здесь.
      • нет, не только у Вас... у меня тоже...
      • Белое пространство — видимо его придется терпеть, так как оно добавляется автоформатированием. По какой-то причине между текстом и таблицей оно вставило кучу БР. Если его отключить, текст превратится в кашу. Так что извините:( А название — поправил, спасибо.
        • Просто отключите автоформатирование
        • Либо же уберите переносы строк перед тегами
          • Вот это — помогло, спасибо.
  • ээээм... а что это перед графиком такой боооооольшой пролёт...
    А о статье - Спасибо, попробуем....
  • А как в использовании?
    Кто-то пробовал?

    Так же буду очень благодарен за комментирования профи в данной области!

    Спасибо!!!
    • Я не профи но скажу. Ничего нового в этом нет, а этого и не надо. По такому же принципу работают прелоадер Adobe Reader или OpenOffice в Windows. Это полезно и эффективно, но только при наличии достаточного запаса оперативной памяти.
      • В наше время проблема нехватки оперативной памяти не стоит очень остро, так что программа действительно очень полезная
        • В Санрайзе лежат флешки OSZ на 32 гигабайта по 4 т.р. Это значит, что в этом году рынок начнут понемногу заваливать дешевыми SSD и на ухищрения с кешированием можно будет забить болт.
  • НЛО прилетело и опубликовало эту надпись здесь.
    • Тоже вариант, но требует больше телодвижений. И особенно полезен будет приверженцам KDE. Кто интересуется, может почитать например http://citkit.ru/articles/168/ (это не к автору коментария)
      • НЛО прилетело и опубликовало эту надпись здесь.
        • А мне вот кажется, или prelink и preload, сюдя по описанию функционала, друг другу не противоречат в использовании? То есть, prelink нам даст больше радости на первом старте, а preload - со временем при перезапусках.
          • НЛО прилетело и опубликовало эту надпись здесь.
  • Поробовал, результат действительно заметен, набрал top, демона там не обнаружил, посмотрим как дальше себя покажет. в любом случае спасибо за информацию.
    • top - не наш путь. Надо пользоваться ps:

      steam@kiska:~$ ps -ewd | grep preload
      5776 ? 00:00:00 preload
      • Думаю, человек хотел сказать, что демон не обнаружен вверху вывода top, тоесть он не жрет ресурсов (незаметен).
  • Сколько ОЗУ необходимо иметь чтобы был смысл пользоватся этой технологией? Т.е если у меня 1Гб ОЗУ есть ли смысл в её применении?
    • Ээээ, надо поглядеть, много ли ее у тебя используется, может в повседневной работе ты используешь там .. 400Мб, тогда видимо смысл есть. А вообще — в любом случае, если есть желание надо попробовать. Удалить его, также легко, как и поставить.
  • А в висте уже давно аналогичная штука есть. Superfetch называется. Работает действительно хорошо.
    • Коментарий, какой-то враждебный. Очень хорошо, что там есть такая штука, но так, для информации с сайта этой штуки: preload 0.2 release 2005-09-01
      • Да считайте комментарий каким угодно. Я просто сообщил, что аналогичные технологии есть не только в мире Линукс и они действительно работают на практике.
        • Вау, кто бы мог подумать! Теперь я знаю зачем Висте гигабайт оперативы минимум! =)

          Шучу, шучу. Естественно, есть. Мы и не спорим.
          • Если отбросить шутки, то superfetch и правда страшно жадный. И после его отключения виста жрёт намного меньше.

            Кстати, гигабайт с включенным superfetch'ем это вообще самый минимум. Если запускать что-то тяжелое, то и его мало.
      • Prefetch был ещё в Windows XP.
    • Текущая версия проекта вышла 2006. Так что правильней сказать - а в Висту такое тоже из линукса сперли :)
      • Ну Виста тоже в 2006-ом вышла. А, учитывая то, что preload формально бета, а разработка висты началась давно, далеко не очевидно, кто первый.

        Впрочем, спор на данную тему считаю бессмысленным.
        • конечно очевидно - впервые это появилось в линуксе
          • Очередной бессмысленный фанат линукса?
            • Не думаю, просто большинство вещей в Windows откуда-нибудь скопировано, оригинальных идей в Windows практически нет. Я отдаю должное, что в этой системе каждая вещь обернута в красивый фантик, но не более того, в связи с этим мне кажется что в Windows тулзе просто взяли готовую идею, быстро написали аналог существующей программы и навернули на него ГУИ.
              Насчет дат релизов - я думаю что Микрософт в состоянии за год написать аналог preload-а, тем более там работают специалисты (работают за деньги, а не просто из энтузиазма)
              • раскрыть комментарий
                • Пожалуй соглашусь, сперли не из линукса. А из другой горячо любимой на хабре ОС :) Prebinding появился в MacOS X, где-то в 2002 году (сам не маковод :) но первое упоминание в сети датируется 2002).
      • Висту разработали за 1 день? 6 лет её делали.
        Вышла виста в 2006м году, вот и посчитайте где был Preload даже во время публичного бета тестирования.
        И про Prefetch тоже не забудьте.
    • К слову в оригинале статьи суперфетч упоминается
  • а для windows такого нет?
    • в висте есть ;) Superfetch
      • интересно, поможет ли он виндовым приложениям под wine :)
        • НЛО прилетело и опубликовало эту надпись здесь.
    • Эм... А в XP разве нет prefetch? Или это другое?
  • > кеширует их и используемые ими библиотеки,
    > что приводит к повышению скорости загрузки программ

    Кеширует где, на винте? А при загрузке ОС заливает в память?
    То есть время загрузки ОС будет дольше, а запуск программ быстрее? Так?
  • Эта функция есть не только в Vista, но и в XP. Там она называется PreFetch. А XP у нас 2001 года :)
    А вообще это прикольная фича. Здорово что она и в Linux есть.
    • Только в XP работает наоборот - замедляет скорость работы:)
  • Говорят подобная фича есть в XP SP2.

    One of the many claims Microsoft makes for Windows Longhorn is that it wil launch applications 15% faster than Windows XP does currently. This is down to improvements in the Prefetch functionality. There's no need to wait until Longhorn arrives; this improvement is already in Windows XP thanks to Service Pack 2. It just needs to be turned on.

    To enable super prefetch:

    * Use a registry editing tool to navigate to the following key:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentCo ntrolSet\Contro l\Session Manager\Memory Management\PrefetchParameters
    * Insert a value with the following details:

    Data Type: DWORD
    Value Name: EnableSuperfetch
    Value: 1

    http://www.tbreak.com/forums/showthread.…

    Я эту фичу поставил, замерил скорость открывания фотошопа в первый раз. Перезагрузился - время такое-же. Посмотрим что будет через недельку.

    p.s. 4ГБ ОЗУ WinXP 64 bit
    • И не заметите :)
      Windows XP понятия не имеет ни о технологии, ни даже о слове Superfetch.
      Управление ее Prefetcher-ом осуществляется через ключ реестра:
      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters]
      EnablePrefetcher=0 ;Отключить сервис
      или
      EnablePrefetcher=1 ;Упреждающая выборка запускаемых приложений
      или
      EnablePrefetcher=2 ;Запускаемых только во время загрузки
      или
      EnablePrefetcher=3 ;Включены оба режима
      Причем по умолчанию он обычно установлен в "3", т.е. по максимуму.
      • о как... А подобие Superfetch на Xp есть?
        • Нет.
          Суть технологии Prefetch в XP — это создание и кеширование некого плана загрузки приложения. Т.е. откуда и в какой последовательности загружаются dll-ки, сколько памяти резервируется под данные и т.д. Короче, все параметры, которые вычисляются из PE-заголовков при обычной загрузке.
          Superfetch же занимает неиспользуемую память именно образами этих модулей. Из-за этого в адрес Висты было много "криков", что она жрет очень много памяти.
          • Отлично, благодарю за разъяснение.
  • спасибо, содержательно.
    Никаких телодвижений для помещения в автозагрузку не надо, как я понял ?
  • ой, оно ж 2006-ого года...
  • Очень интересно. Подскажите, а что еще есть полезного на тему оптимизации скорости, кроме preload и prelink? Ну, если не вспоминать про Gentoo)
  • Нашел интересную статью - https://wiki.ubuntu.com/AutomaticBootAnd…
    В частности о preload там говорится следующее:
    "The idea is unsuitable for speeding up application startup for the following reasons:

    It runs as daemon, wakes up every 20 seconds to see if files should be preloaded. It cannot react to application starting in this 20 seconds interval.

    It analyzes what applications are running together and fetches their files. It might work for applications which are started during login as this is predictable, but it does not work well for applications which are started on user demand, for example Firefox or OpenOffice.

    It analyzes /proc/pid/maps to see what files are used by application, so it does not notice files accessed using read() system call."
    • Я понимаю работу Preload так:
      Демон каждые 20 секунд смотрит, какие приложения запущены, и какие библиотеки им нужны. И собрав статистику он грузит эти библиотеки в память.
      Когда в следующий раз запускается приложение, то библиотеки уже загружены в память.
      Из недостатков вижу только то, что демон каждые 20 секунд опрашивает систему, что может сказаться на времени работы лэптопа от аккумулятора.
Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.