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

Я хотел бы знать, каковы недостатки использования preload? Если бы не было недостатка, preload будет включен по умолчанию, поэтому я думаю, что есть некоторые.

Хорошо, вам нужно немного больше оперативной памяти, но у большинства людей гораздо больше оперативной памяти, чем в Ubuntu, - каковы недостатки использования preload?

7 ответов

Решение

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

Во-первых, Google Chrome. Теперь браузер открывается только один раз за загрузку, может быть, дважды (для меня я веб-разработчик). Chrome и связанные с ним библиотеки остаются в памяти, потому что я всегда им пользуюсь. Даже когда я закрываю все хромированные окна, он все еще на заднем плане делает свое дело. Таким образом, все оперативные памяти, предназначенные для хранения предустановленной копии Chrome, являются полной и полной тратой. Это никогда (или редко) выгружается. Для обычного пользователя это верно для большого количества приложений. У пользователя Office почти всегда будет открыто приложение электронной почты. Таким образом, небольшая экономия времени запуска полностью теряется, потому что они открывают свое почтовое приложение только один раз в день и оставляют его открытым.

Второй пример - грабли. Как разработчик ruby, который верит в тестирование, я запускаю rake TON. Грабли запускаются, выполняются в течение пары секунд - затем завершаются. Предварительная загрузка помогает мне ускорить мою ежедневную работу, потому что она загружает rake и необходимые библиотеки (которые могут быть очень обширными) заранее. Таким образом, есть много запусков и остановок для бега граблей. Дополнительный таран, используемый для ускорения 400 или 500 запусков рейка в течение нескольких часов, полностью стоит того.

Таким образом, причина, по которой он не включен по умолчанию, заключается в том, что его способность реально повысить производительность в значительной степени зависит от того, как вы используете свою систему. Для некоторых это будет негативно, а для других - позитивно.

И наконец, при предварительной загрузке, даже если вы ее не используете, потребляется оперативная память. Поэтому, если вы не часто запускаете приложения, вы могли бы на деле замедлить работу всей системы, если бы не было доступной памяти для других типов кэширования. Помните, что даже если у вас 32 гигабайта оперативной памяти, Linux постарается использовать как можно больше для кэширования данных, чтобы ускорить ваше взаимодействие. Используя предварительную загрузку, вы уменьшаете объем свободной памяти. Даже если это будет чуть-чуть, 2 секунды, которые вы сохранили при запуске Chrome 1, могут стоить вам 60 секунд по сравнению с месяцем, в течение которого он работает.

Вопрос, заданный баунтиром Saeed Zarinfam 5 сентября 2012 года:

Привет всем, я хочу знать, это миф? [Preload] действительно улучшает мою производительность? Каковы недостатки его использования? У меня есть ноутбук с этой спецификацией (Core i5 CPU, 4 ГБ ОЗУ, 128 ГБ SSD Hard). Огромное спасибо.

  • Там нет реальной необходимости предварительной загрузки, если у вас есть SSD
    • Это связано с тем, что твердотельные накопители обеспечивают гораздо более быстрое время произвольного доступа, чем жесткие диски, поэтому "предварительная загрузка" двоичных файлов / зависимостей в память является пустой тратой, IMO
    • Основным недостатком является то, что предзагрузка "использует" дополнительную память без ощутимых преимуществ.

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

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

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

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

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

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

Мы разработали и реализовали предварительную загрузку - схему адаптивной предварительной выборки на основе Маркова, которая работает на предсказаниях на уровне приложений. Кроме того, предварительная загрузка реализована в пользовательском пространстве и никоим образом не меняет среду выполнения приложения. Насколько нам известно, это первая работа, в которой мы экспериментировали с предварительной выборкой файловой системы на этом уровне.

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

Однако присутствие в пространстве пользователя создает серьезные препятствия для того, чтобы сделать предварительную загрузку конкурентоспособным решением проблемы времени запуска. В частности, отсутствие полной информации о запросах ввода-вывода приложений и отсутствие надежных каналов связи с подсистемой кэширования страниц значительно снижает эффективность предварительной загрузки, особенно в условиях ограниченного объема памяти.

Другая внутренняя проблема, связанная с конструкцией предварительной нагрузки, - это высокая дисперсия и низкая достоверность предсказания, вызванные относительно слабой корреляцией запусков приложений. В то время как мы успешно строим модель для отслеживания корреляций приложений, тот факт, что запуска приложений являются очень редкими событиями по сравнению с временными рамками, на которых работают компьютеры, схема предварительной выборки на уровне приложений обречена на потребление огромной памяти предварительной выборки в течение практически бесконечного периода времени. Эта память может быть использована для улучшения краткосрочного поведения кэша.

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

1 Источник: techthrob

2 Источник: Предварительная загрузка - Демон адаптивной предварительной выборки Бехдада Эсфахбода - Диссертация, представленная в соответствии с требованиями степени магистра наук - Аспирантура факультета компьютерных наук - Университет Торонто Copyright (c) 2006 - Бехдад Эсфахбод.

Недостатки? НЕТ!

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

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

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

смотреть статью

Если вы постоянно используете обычные приложения, такие как Firefox или Gimp, вы заметите значительное улучшение времени загрузки. Preload - это демон, который работает в фоновом режиме и в любом случае не будет нарушать работу вашего рабочего стола. Пользователи Ubuntu могут установить предзагрузку с помощью:

sudo apt-get install preload

Результаты:

График, показывающий разницу между нормальным и предварительным запуском

ссылка

Я думаю, что предварительная загрузка почти ничего не делает. Кажется, что он загружает все часто используемые страницы в оперативную память и блокирует их там, чтобы они оставались там. Ядро делает почти то же самое. Он хранит файлы, которые использовались программой (или являются самой программой). Если программе больше не нужны эти страницы, то она closesфайл.... питон:

      file=open('file.txt') # open the file
....
file.close            # close the file

.... то ядро ​​по-прежнему будет хранить их в ОЗУ и перезаписывать их только в том случае, если ОЗУ заполнено ...%.

Предварительная загрузка только ускоряет процесс, но может даже замедлить работу системы. Он загружает приложения в оперативную память, но блокирует их, поэтому ядро ​​не может освободить их, если оперативная память заполнена. Предварительная загрузка также автоматически освобождает их, но ядро ​​должно освободить их до того, как будут освобождены страницы, заблокированные предварительной загрузкой. Предварительная загрузка должна решить, когда заблокированные страницы будут освобождены, и поэтому это может быть пустой тратой времени, потому что, если у вас все время открыт браузер, предварительная загрузка заблокирует его. Теперь вы закрываете браузер — предварительная загрузка все равно заблокирует его. Вы используете всю оперативную память — предварительная загрузка все равно ее заблокирует — и ядру приходится освобождать те страницы, которые требуются в данный момент. Поскольку вы больше не хотите просматривать, вы хотите играть в игру. Файлы игры приходится постоянно перезагружать, потому что ядро ​​должно их освобождать. dirty pages.

Я не знаю, как именно работает предварительная загрузка, как она обучается и насколько она эффективна, но она ни за что не раздует систему. Предварительная загрузка может тратить ОЗУ. Это может тратить ресурсы жесткого диска (особенно замедлять загрузку, я читал). Пользователь сам решает, хочет он этого или нет. Предварительная загрузка может очень помочь, если вы часто перезагружаете свою систему, но если она часто находится в режиме приостановки работы, она вам не понадобится. Заметной разницы нет.

Одна вещь: ядро ​​​​выпускает самую старую страницу, если порог был достигнут. Предварительная загрузка освобождает файл/страницу, которая является самой ненужной.

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

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

Вот некоторые недостатки Preload и почему он не так эффективен для всех. У меня есть достойная система спецификаций с 8 ГБ ОЗУ. Так что моя система в целом быстрая. Кроме того, я буду открывать приложения с большим объемом памяти, такие как Firefox, Chrome, VirtualBox, Gimp и т. Д., Один или два раза в день. Они остаются открытыми все время, поэтому их двоичные файлы и библиотеки предварительно загружаются в память и занимают оперативную память весь день. Я редко закрываю и открываю эти приложения, поэтому использование оперативной памяти просто напрасно. Если вы используете современные системы с SSD, предварительная загрузка явно бесполезна. Поскольку время доступа к твердотельным дискам намного быстрее, чем у обычных жестких дисков, использование предварительной загрузки бессмысленно. Предварительная загрузка существенно влияет на время загрузки. Поскольку чем больше приложений предварительно загружено в оперативную память, тем больше времени требуется для наладки и запуска вашей системы.

Вы увидите реальную разницу только в том случае, если вы перезагружаете приложения МНОГО раз в день. Таким образом, Preload идеально подходит для разработчиков и тестировщиков, которые открывают и закрывают приложения несколько раз в день.

Была проблема, с которой я столкнулся, в частности, при использовании Preload: это кеширование файлов старого кода vscode во время выполнения, что доставляло мне много проблем, новый обновленный код не запускался в среде отладчика node js.

Другие вопросы по тегам