Андрей Смирнов
Время чтения: ~28 мин.
Просмотров: 21

Как исправить ошибку «из-за нехватки памяти страница была перезагружена» в браузере Яндекс

Разберемся почему желтый браузер съедает всю оперативную память…

Яндекс.Браузер относится к программам, которые потребляют существенное количество RAM. Для корректной работы желтого браузера требуется более одного гигабайта оперативной памяти. В противном случае не избежать лагов, тормозов и других сбоев ПО.

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

Причины по которым Яндекс.Браузер жрет много оперативной памяти:

  • Дополнительные расширения, модули Рё плагины браузера — блокировщики рекламы, встроенный диспетчер задач Рё так далее;
  • Чрезмерное количество открытых вкладок, кстати, закрепленные вкладки РІ Яндекс.Браузере загружаются автоматически, что также забирает существенное количество оперативной памяти;
  • Особенности каждого конкретного сайта — тяжелые сайты РјРѕРіСѓС‚ тормозить желтый браузер;
  • Работа браузера РІ фоне — например, снесли РЅР° панель Рё забыли закрыть;
  • Загрузка фоновых вкладок.

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

Если желтый браузер не хочет работать быстрее проще всего установить другой. В любых условиях быстрее будет Хром, чуть медленнее — Фаерфокс. Если рассматривать работу российского браузера с точки зрения быстродействия, то здесь все понятно — по сравнению с другими браузер, на первый взгляд, он самый неповоротливый

Скорость загрузки веб-страниц в одинаковых условиях может довольно сильно различаться в разных браузерах.

Казалось бы преимущество, определенно, у Хрома, но здесь стоит немного вникнуть в процесс работы ПО — загрузка страниц в желтом браузере действительно медленнее чем в Хроме, кроме этого открытие сразу нескольких вкладок сулит существенные тормоза Яндекс.Браузеру

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

Специально для Вас:  Википедия врет: почему и кому выгодно

Сравнительная таблица нагрузки RAM при 12 открытых вкладках:

Браузер среднее относительное значение RAM, Мб
Опера 2800
Гугл Хром 2400
Фаерфокс 2060
Яндекс.Браузер 1970

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

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

Следует отметить, что браузер Яндекса, в отличие от других, при закрытии полностью не освобождает память — он висит в фоновых процессах и может потреблять дополнительные 2 МБ памяти, а голосовой ассистент Яндекса забирает еще 3 МБ. Это как раз ответ на вопрос почему Яндекс.Браузер жрет много оперативной памяти — достаточно отключить выше указанные процессы в диспетчере задач и работа компьютера заметно ускорится…

Когда браузерам не хватает памяти, они выгружают из нее наиболее старые вкладки. Это раздражает, потому что клик по такой вкладке приводит к принудительной перезагрузке страницы. Сегодня мы расскажем читателям Хабра о том, как команда Яндекс.Браузера решает эту проблему с помощью технологии Hibernate. Браузеры, основанные на Chromium, создают по процессу на каждую вкладку. У этого подхода множество достоинств. Это и безопасность (изоляция сайтов друг от друга), и стабильность (падение одного процесса не тянет за собой весь браузер), и ускорение работы на современных процессорах с большим количеством ядер. Но есть и минус – более высокое потребление оперативной памяти, чем при использовании одного процесса на всё. Если бы браузеры ничего с этим не делали, то их пользователи постоянно видели бы что-то подобное:s6b-yc753-ksq2bjrj2n4_xm_z8.png В проекте Chromium борются с потреблением памяти фоновыми вкладками с помощью очистки различных кэшей. Речь не про тот кэш, в котором хранятся картинки загруженных страниц. С ним проблем нет – он живет на жестком диске. В современном браузере много другой закэшированной информации, которая хранится в оперативной памяти. Также в Chromium уже достаточно давно работают над тем, чтобы останавливать JS-таймеры в фоновых вкладках. Иначе очистка кэшей теряет смысл, т.к. активности в фоновых вкладках их восстанавливают. Считается, что если сайты хотят работать в фоне, то нужно использовать service worker, а не таймеры.Если эти меры не помогают, то остается только одно – выгрузить из памяти весь процесс рендеринга вкладки. Открытый сайт просто перестает существовать. Если переключиться на вкладку, то начнется загрузка из сети. Если во вкладке было видео на паузе, то оно начнет проигрываться с начала. Если на странице заполнялась форма, то введенная информация может быть утеряна. Если во вкладке работало тяжелое JS-приложение, то понадобится запустить его заново. Проблема выгрузки вкладок особенно неприятна при отсутствии доступа к сети. Отложили вкладку с Хабром для чтения на борту самолета? Будьте готовы, что полезная статья превратится в тыкву. Разработчики браузеров понимают, что эта крайняя мера вызывает раздражение у пользователей (достаточно обратиться к поиску, чтобы оценить масштабы), поэтому применяют ее в последний момент. В этот момент компьютер уже тормозит из-за нехватки памяти, пользователи это замечают и ищут альтернативные способы решения проблемы, поэтому, к примеру, у расширения The Great Suspender более 1,4 млн пользователей. Люди хотят, чтобы браузеры и память экономили, и тормозить при этом не начинали. Для этого вкладки нужно выгружать не в последний момент, а чуть раньше. А для этого нужно перестать терять содержимое вкладок, т.е. сделать процесс экономии незаметным. Но на чем тогда экономить? Круг замкнулся. Но решение нашлось.

Hibernate в Яндекс.Браузере

Многие читатели Хабра уже могли догадаться, что очистить память, но сохранить состояние вкладки вполне возможно, если предварительно выгрузить состояние на жесткий диск. Если по клику восстановить вкладку с жесткого диска, то пользователь не заметит ничего. Наша команда участвует в разработке проекта Chromium, куда отправляет значительные оптимизирующие правки и новые возможности. Ещё в 2015 году мы обсуждали с коллегами из проекта идею сохранения состояния вкладок на жесткий диск и даже успели внести ряд доработок, но это направление в Chromium решили заморозить. Мы решили иначе и продолжили разработку в Яндекс.Браузере. На это ушло больше времени, чем планировали, но это того стоило. Чуть ниже мы расскажем о технической начинке технологии Hibernate, а пока начнем с общей логики. Несколько раз в минуту Яндекс.Браузер проверяет количество доступной памяти, и если ее меньше, чем пороговое значение в 600 мегабайт, то в дело вступает Hibernate. Всё начинается с того, что Браузер находит наиболее старую (по использованию) фоновую вкладку. Кстати, в среднем у пользователя открыто 7 вкладок, но у 5% их более 30. Выгружать из памяти любую старую вкладку нельзя – можно сломать что-то действительно важное. Например, воспроизведение музыки или общение в веб-мессенджере. Таких исключений сейчас 28. Если вкладка не подошла хотя бы по одному из них, то Браузер переходит к проверке следующей. Если найдена вкладка, которая удовлетворяет требованиям, то начинается процесс ее сохранения.

Сохранение и восстановление вкладок в Hibernate

Любую страницу можно условно разделить на две большие части, связанные с движками V8 (JS) и Blink (HTML/DOM). Рассмотрим небольшой пример:

       

У нас есть некоторое DOM-дерево и небольшой скрипт, который просто добавляет div в body. С точки зрения Blink, эта страница выглядит примерно так:rttkamwsawvme_06mcommdyiqky.png Давайте посмотрим на связь между Blink и V8 на примере HTMLBodyElement:ybrr-bppoiru848txkj63eplpne.png Можно заметить, что Blink и V8 имеют разные представления одних и тех же сущностей и тесно связаны друг с другом. Так мы пришли к первоначальной идее – сохранять полное состояние V8, а для Blink хранить лишь HTML-атрибуты в виде текста. Но это было ошибкой, потому что мы потеряли те состояния DOM-объектов, которые хранились не в атрибутах. А еще потеряли состояния, которые хранились не в DOM. Решением этой проблемы было полное сохранение Blink. Но не всё так просто. Для начала нужно собрать информацию об объектах Blink. Поэтому в момент сохранения V8 мы не только останавливаем JS и делаем его слепок, но и собираем в памяти ссылки на DOM-объекты и прочие вспомогательные объекты, доступные для JS. Мы также проходим по всем объектам, до которых можно дотянуться из объектов Document – корневых элементов каждого фрейма страницы. Так мы собираем информацию обо всем, что важно сохранить. Остается самое сложное – научиться сохранять. Если посчитать все классы Blink, которые представляют DOM-дерево, а также разные HTML5 API (например, canvas, media, geolocation), то получим тысячи классов. Практически невозможно написать руками логику сохранения всех классов. Но хуже всего то, что даже если так сделать, то это будет невозможно поддерживать, потому что мы регулярно подливаем новые версии Chromium, которые вносят неожиданные изменения в любой класс. Наш Браузер для всех платформ собирается с помощью clang. Чтобы решить задачу сохранения классов Blink, мы создали плагин для clang, который строит AST (абстрактное синтаксическое дерево) для классов. Например, вот этот код:

Код класса
class Bar : public foo_namespace::Foo {   struct BarInternal {     int int_field_;     float float_field_;   } bar_internal_field_;   std::string string_field_; };

Превращается в такой XML:

Результат работы плагина в XML
<class><name>bar_namespace::Bar::BarInternal</name>   false   false   <decl>srh   <base><fields><field>name>int_field_       <type><builtin>           0           <name>int</name></builtin></type></field><field><name>float_field_</name><type><builtin>           0           <name>float</name></builtin></type></field></fields></decl></class><class><name>bar_namespace::Bar false   false   <decl>src/bar.h   <base><class>foo_namespace::Foos_name>      <fields><field><name>bar_internal_field_</name><type><class>           0           <name>bar_namespace::Bar::BarInternal</name></class></type></field><field><name>string_field_</name><type><class>           0           <name>std::string</name></class></type></field></fields></class></decl></name></class>

Дальше другие написанные нами скрипты генерируют из этой информации код на C++ для сохранения и восстановления классов, который и попадает в сборку Яндекс.Браузера.

Код сохранения на C++, полученный скриптом из XML
void serialize_bar_namespace_Bar_BarInternal(     WriteVisitor* writer,     Bar::BarInternal* instance) {   writer->WriteBuiltin<size>(instance->int_vector_field_.size());   for (auto& item : instanc_vector_field_) {     writer->WriteBuiltin<int>(item);   }    writer->WriteBuiltin<float>(instance->float_field_); }  verialize_bar_namespace_Bar(WriteVisitor*,                                  Bar* instance) {   serialize_foo_namespace_Foo(writer, instance);    serialize_bar_namespace_Bar_BarInternal(       writer,       &instance->bar_internal_field_);    writer->WriteString(instance->string_field_); }</float></int></size>

Всего у нас генерируется код примерно для 1000 классов Blink. Например, мы научились сохранять такой сложный класс как Canvas. В него можно рисовать из JS-кода, задавать множество свойств, устанавливать параметры кисточек для рисования и так далее. Мы сохраняем все эти свойства, параметры и саму картинку. После успешного шифрования и сохранения всех данных на жесткий диск процесс вкладки выгружается из памяти до тех пор, пока пользователь не вернется на эту вкладку. В интерфейсе, как и раньше, она никак не выделяется. Восстановление вкладки происходит не мгновенно, но существенно быстрее, чем при загрузке из сети. Тем не менее мы пошли на хитрый ход, чтобы не раздражать пользователей вспышками белого экрана. Мы показываем скриншот страницы, созданный на этапе сохранения. Это помогает сгладить переход. В остальном процесс восстановления похож на обычную навигацию с той лишь разницей, что Браузер не делает сетевой запрос. Он воссоздает структуру фреймов и DOM-деревья в них, а затем подменяет состояние V8. Записали видео с наглядной демонстрацией того, как Hibernate выгружает и восстанавливает по клику вкладки с сохранением прогресса в JS-игре, введенного в формах текста и положения видео:

Итоги

В ближайшее время технология Hibernate станет доступна всем пользователям Яндекс.Браузера для Windows. Мы также планируем начать экспериментировать с ней в альфа-версии для Android. С ее помощью Браузер экономит память более эффективно, чем раньше. К примеру, у пользователей с большим числом открытых вкладок Hibernate в среднем экономит более 330 мегабайт памяти и не теряет при этом информацию во вкладках, которая остается доступна в один клик при любом состоянии сети. Мы понимаем, что вебмастерам было бы полезно учитывать выгрузку фоновых вкладок, поэтому планируем поддержать Page Lifecycle API. Hibernate – не единственное наше решение, направленное на экономию ресурсов. Мы не первый год работаем над тем, чтобы Браузер адаптировался под имеющиеся в системе ресурсы. К примеру, на слабых устройствах Браузер переходит в упрощенный режим, а при отключении ноутбука от источника питания – снижает энергопотребление. Экономия ресурсов – большая и сложная история, к которой мы еще обязательно вернемся на Хабре.

Pochemu-brauzer-zhret-mnogo-operativnoj-pamyati.png

Причины повышенного потребления оперативной памяти у браузера

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

Причина 1: Разрядность браузера

64-битные программы всегда больше требовательны к системе, а значит и оперативной памяти им надо больше. Такое утверждение справедливо и для браузеров. Если в ПК оперативной памяти установлено до 4 ГБ, можно смело выбрать 32-битный браузер в качестве основного или запасного, запуская его лишь при необходимости. Проблема в том, что разработчики хоть и предлагают 32-битный вариант, но делают это неочевидно: скачать его можно, открыв полный список загрузочных файлов, на главной странице же предлагается лишь 64-bit.

Google Chrome:

  1. Откройте главную страницу сайта, опуститесь вниз, в блоке «Продукты» кликните «Для других платформ».

Perehod-k-spisku-vseh-zagruzok-v-Google-Chrome.png

В окне выберите 32-разрядную версию.</li>Vybor-32-bitnoj-versii-Google-Chrome.png</ol>

Mozilla Firefox:

  1. Перейдите на главную страницу (обязательно должна быть версия сайта на английском языке) и опуститесь вниз, нажав по ссылке «Download Firefox».

Perehod-v-zagruzki-Mozilla-Firefox.png

На новой странице найдите ссылку «Advanced install options & other platforms», если хотите скачать версию на английском.

Perehod-k-vyboru-razryadnosti-ustanovshhika-Mozilla-Firefox.png

Выберите «Windows 32-bit» и скачайте.</li>

Skachivanie-32-bitnoj-versii-Mozilla-Firefox.png

Если нужен другой язык, жмите на ссылку «Download in other language».

Perehod-k-vyboru-razryadnosti-Mozilla-Firefox-s-yazykovym-paketom.png

Найдите в списке свой язык и кликните на иконку с надписью «32».</li>Skachivanie-32-bitnoj-versii-Mozilla-Firefox-s-yazkovym-paketom.png</ol>

Opera:

  1. Откройте главную страницу сайта и нажмите по кнопке «ЗАГРУЗИТЬ OPERA» в правом верхнем углу.

Perehod-k-spisku-vseh-zagruzok-Opera.png

Прокрутите страницу в самый низ и в блоке «Архивные версии Opera» кликните по ссылке «Найти в архиве FTP».</li>

Perehod-k-FTP-arhivu-s-versiyami-Opera.png

Выберите последнюю доступную версию — она находится в конце списка.</li>

Vybor-poslednej-versii-Opera-v-FTP.png

Из операционных систем укажите «win».</li>

Vybor-operatsionnoj-sistemy-dlya-Opera-v-FTP.png

Скачайте файл «Setup.exe», не имеющий приписки «x64».</li>Skachivanie-32-bitnoj-versii-Opera.png</ol>

Vivaldi:

  1. Перейдите на главную страницу, опуститесь вниз страницы и в блоке «Загрузить» нажмите по «Vivaldi для Windows».

Perehod-k-spisku-vseh-zagruzok-Vivaldi.png

Прокрутите страницу ниже и в разделе «Загрузить Vivaldi для других операционных систем» выберите 32-bit, исходя из версии Windows.</li>Skachivanie-32-bitnoj-versii-Vivaldi.png</ol>

Браузер можно установить поверх уже существующей 64-битной или с предварительным удалением прошлой версии. Яндекс.Браузер не предоставляет 32-битной версии. Веб-обозреватели, предназначенные специально для слабых компьютеров, такие как Pale Moon или SlimJet, не ограничивают в выборе, поэтому в целях экономии нескольких мегабайт можно скачать 32-битную версию.

Читайте также: Какой выбрать браузер для слабого компьютера

Причина 2: Установленные расширения

Довольно очевидная причина, тем не менее требующая упоминания. Сейчас все браузеры предлагают большое количество надстроек, и многие из них действительно могут быть полезны. Однако каждое такое расширение может требовать как 30 МБ ОЗУ, так и более 120 МБ. Как вы понимаете, дело не только в количестве расширений, но и в их предназначении, функциональности, сложности.

Условные блокировщики рекламы — яркое тому доказательство. Всеми любимые AdBlock или Adblock Plus занимают куда больше оперативной памяти при активной работе, чем тот же uBlock Origin. Проверить, сколько ресурсов требует то или иное расширение, можно через Диспетчер задач, встроенный в браузер. Есть он практически у каждого обозревателя:

Chromium — «Меню» > «Дополнительные инструменты» > «Диспетчер задач» (либо нажмите сочетание клавиш Shift + Esc).

Prosmotr-potrebleniya-operativnoj-pamyati-rasshireniyami-cherez-Dispetcher-zadach-v-Google-Chrome.png

Firefox — «Меню» > «Еще» > «Диспетчер задач» (либо введите about:performance в адресной строке и нажмите Enter).

Prosmotr-potrebleniya-operativnoj-pamyati-rasshireniyami-cherez-Dispetcher-zadach-v-Mozilla-Firefox.png

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

Причина 3: Темы оформления

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

Причина 4: Тип открытых вкладок

В этот пункт можно внести сразу несколько моментов, которые так или иначе сказываются на количестве потребления ОЗУ:

  • Многие пользователи используют функцию закрепления вкладок, однако они тоже требуют ресурсов, как и все остальные. Более того, поскольку они считаются важными, при запуске браузера они прогружаются в обязательном порядке. По возможности их стоит заменить закладками, открывая только тогда, когда нужно.
  • Важно помнить и о том что именно вы делаете в браузере. Сейчас многие сайты не просто отображают текст и картинки, а еще показывают видео в высоком качестве, запускают аудиоплееры и другие полноценные приложения, которые, естественно, требуют гораздо более ресурсов, чем обычный сайт с буквами и символами.
  • Не забывайте, что браузеры используют прогрузку прокручиваемых страниц заранее. Например, лента ВК не имеет кнопки перехода на другие страницы, поэтому следующая страница грузится еще тогда, когда вы находитесь на предыдущей, что требует оперативной памяти. К тому же, чем дальше вниз вы уходите, тем больший участок страницы помещается в ОЗУ. Из-за этого появляются тормоза даже в одной вкладке.

Каждая из этих особенностей возвращает пользователя к «Причине 2», а именно к рекомендации отслеживать встроенный в веб-обозреватель Диспетчер задач — вполне возможно, что много памяти занимает 1-2 конкретных страниц, что уже не относится к пользователю и не является виной браузера.

Причина 5: Сайты с JavaScript

Многие сайты используют для своей работы скриптовый язык JavaScript. Для того чтобы части страницы интернета на JS отображались корректно, требуется интерпретация его кода (построчный анализ с дальнейшим выполнением). Это не только замедляет загрузку, но и отнимает оперативную память для обработки.

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

Бороться с этим можно как радикально — отключением JavaScript в настройках браузера, так и более мягко — используя расширения по типу NoScript для Firefox и ScriptBlock для Chromium, блокирующие загрузку и работу JS, Java, Flash, но дающие возможность разрешать их отображение выборочно. Ниже вы видите пример одного и того же сайта сперва с отключенным блокировщиком скриптов, а потом с включенным. Чем чище страница, тем меньше она нагружает ПК.

Sajt-bez-ispolzovaniya-NoScript-i-s-nim.png

Причина 6: Непрерывная работа браузера

Этот пункт следует из предыдущего, однако лишь на определенную его часть. Проблема JavaScript заключается и в том, что после завершения использования определенного скрипта инструмент управления памятью в JS под названием Garbage Collection функционирует не очень эффективно. Это не очень хорошо сказывается на занятом объеме ОЗУ уже в короткий промежуток времени, не говоря уже о длительном времени запуска браузера. Есть и другие параметры, отрицательно сказывающиеся на ОЗУ при длительной беспрерывной работе браузера, но останавливаться на их объяснении мы не будем.

Проверить это проще всего, посещая несколько сайтов и измерив количество занятой оперативной памяти, а затем перезапустив браузер. Таким образом можно освободить 50-200 МБ в рамках сессии продолжительностью несколько часов. Если не перезапускать браузер сутки и более, количество отнятой уже впустую памяти может достигать 1 ГБ и более.

Как еще сэкономить потребление оперативной памяти

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

Использование браузера, выгружающего фоновые вкладки

Многие популярные браузеры сейчас довольно прожорливы, и как мы уже поняли, виной этому далеко не всегда движок браузера и пользовательские действия. Сами страницы нередко перегружены контентом, и оставаясь в фоне, продолжают потреблять ресурсы ОЗУ. Для их выгрузки можно воспользоваться браузерами, поддерживающими эту функцию.

К примеру, подобное есть у Vivaldi — достаточно нажать ПКМ по вкладке и выбрать пункт «Выгрузить фоновые вкладки», после чего все они кроме активных будут выгружены из оперативной памяти.

Vygruzka-fonovyh-vkladok-v-Vivaldi.png

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

Яндекс.Браузер с недавних пор добавил функцию Hibernate, которая подобно одноименной функции в Windows выгружает данные из оперативной памяти на жесткий диск. В данной ситуации вкладки, которые на протяжении определенного времени не использовались, переходят в режим гибернации, освобождая ОЗУ. При повторном обращении к выгруженной вкладке ее копия берется с накопителя, сохраняя ее сеанс, например, набор текста. Сохранение сеанса — важное преимущество перед принудительной выгрузкой вкладки из оперативной памяти, где весь прогресс сайта сбрасывается.

Подробнее: Технология Hibernate в Яндекс.Браузере

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

Подробнее: Интеллектуальная загрузка вкладок в Яндекс.Браузере

Установка расширения для управления вкладками

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

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

  • OneTab — при нажатии на кнопку расширения все открытые вкладки закрываются, остается лишь одна — та, через которую вы будете вручную повторно открывать каждый сайт по мере необходимости. Это легкий способ быстро освободить ОЗУ, не теряя текущую сессию. Скачать из Google Webstore | Firefox Add-ons
  • The Great Suspender — в отличие от OneTab вкладки здесь не помещаются в одну, а просто выгружаются из оперативной памяти. Это можно сделать вручную, кликнув по кнопке расширения, или настроить таймер, по истечении которого вкладки автоматически выгрузятся из ОЗУ. При этом они продолжат находиться в списке открытых вкладок, но при последующем обращении к ним перезагрузятся, снова начав отнимать ресурсы ПК. Скачать из Google Webstore | Firefox Add-ons (расширение Tab Suspender, базирующееся на The Great Suspender)
  • TabMemFree — автоматически выгружает неиспользуемые фоновые вкладки, но если те были закреплены, расширение обходит их стороной. Такой вариант подходит для фоновых плееров или открытых текстовых редакторов онлайн. Скачать из Google Webstore
  • Tab Wrangler — функциональное расширение, собравшее все лучшее из предыдущих. Здесь пользователь может настроить не только время, после которого открытые вкладки выгрузятся из памяти, но и их количество, при котором правило начнет действовать. Если конкретные страницы или страницы определенного сайта не нужно обрабатывать, можно занести их в «белый список». Скачать из Google Webstore | Firefox Add-ons

Настройка браузера

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

Для Chromium:

Возможности тонкой настройки у браузеров на Chromium ограниченные, но набор функций зависит от конкретного веб-обозревателя. В большинстве случаев из полезного у них вы можете отключить только предендер. Параметр находится в «Настройки» > «Конфиденциальность и безопасность» > «Использовать подсказки для ускорения загрузки страниц».

Otklyuchenie-predzagruzki-sajtov-v-Google-Chrome.png

Для Firefox:

Перейдите в «Настройки» > «Общие». Отыщите блок «Производительность» и поставьте либо снимите галочку с пункта «Использовать рекомендуемые настройки производительности». Если вы снимете галочку, откроются дополнительные 2 пункта по настройке производительности. Вы можете отключить аппаратное ускорение, если видеокарта не очень корректно обрабатывает данные, и/или настроить «Максимальное число процессов контента», напрямую влияющее на ОЗУ. Более детально об этой настройке написано на русскоязычной странице поддержки Mozilla, куда вы можете попасть, кликнув на ссылку «Подробнее».

Nastrojki-proizvoditelnosti-v-Mozilla-Firefox.png

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

К слову, в Firefox есть возможность минизмизации потребления оперативной памяти, но только в рамках одного сеанса. Это одноразовое решение, которое можно использовать в условиях сильного потребления ресурсов ОЗУ. Впишите в адресную строку about:memory, найдите и кликните по кнопке «Minimize memory usage».

Umenshenie-potrebleniya-operativnoj-pamyati-v-ramkah-odnoj-sessii-v-Mozilla-Firefox.png

Использование экспериментальных настроек

В браузерах на движке Chromium (и его форке Blink), а также в тех, что используют движок Firefox, есть страницы со скрытыми настройками, которые могут повлиять на количество выделяемой оперативной памяти. Сразу же стоит отметить, что этот способ является больше вспомогательным, поэтому не стоит на него полностью полагаться.

Для Chromium:

Впишите в адресную строку chrome://flags, пользователям Яндекс.Браузера нужно вписать browser://flags и нажать Enter.

Perehod-v-chrome-flags.png

Вставьте в поисковое поле следующий пункт и нажмите на Enter:

#automatic-tab-discarding — автоматическая выгрузка вкладок из ОЗУ, если в системе остается мало свободной оперативной памяти. При повторном обращении к выгруженной вкладке та будет сперва перезагружена. Задайте ему значение «Enabled» и перезапустите браузер.

Izmenenie-statusa-ekspermentalnoj-nastrojki-v-Google-Chrome.png

Кстати, перейдя в chrome://discards (либо browser://discards), можно просматривать список открытых вкладок в порядке их приоритетности, определенном браузером, и управлять их активностью.

Ispolzovanie-chrome-discards.png

Для Firefox возможностей больше:

Впишите в адресное поле about:config и нажмите «Я принимаю на себя риск!».

Perehod-k-esperimentalnym-nastrojkam-v-Mozilla-Firefox.png

В поисковую строчку вставляйте те команды, которые вы хотите изменить. Каждая из них напрямую или косвенно влияет на ОЗУ. Чтобы сменить значение, жмите по параметру ЛКМ 2 раза или ПКМ > «Переключить»:

  • browser.sessionhistory.max_total_viewers — регулирует количество оперативной памяти, которая выделяется на посещаемые страницы. По умолчанию используется для быстрого отображения страницы при возвращении к ней кнопкой «Назад» вместо повторной загрузки. В целях экономии ресурсов этот параметр следует изменить. Двойным кликом ЛКМ задайте ему значение «0».

Izmenenie-znacheniya-eksperimentalnoj-nastrojki-v-Mozilla-Firefox.png

config.trim_on_minimize — выгружает браузер в файл подкачки, пока тот находится в свернутом состоянии.

По умолчанию команды нет в списке, поэтому создадим ее сами. Для этого кликните по пустому месту ПКМ, выберите «Создать» > «Строка».

Sozdanie-novoj-strochki-v-Mozilla-Firefox.png

Введите название команды, указанное выше, а в поле «Значение» впишите «true».</li>

Читайте также: Как изменить размер файла подкачки в Windows XP / Windows 7 / Windows 8 / Windows 10Определение оптимального размера файла подкачки в WindowsНужен ли файл подкачки на SSD

browser.cache.memory.enable — разрешает или запрещает кэшу храниться в оперативной памяти в пределах сеанса. Не рекомендуется отключать, так как это снизит скорость загрузки страниц, поскольку кэш будет храниться на жестком диске, значительно уступающем в скорости ОЗУ. Значение «true» (по умолчанию) разрешает, если хотите отключить — задайте значение «false». Для работы этой настройки обязательно активируйте следующую:

browser.cache.disk.enable — помещает кэш браузера на жесткий диск. Значение «true» разрешает хранение кэша и позволяет предыдущей настройке корректно функционировать.

Вы можете настроить и другие команды browser.cache., например, указав место, куда будет сохраняться кэш на жестком диске вместо оперативной памяти и т.д.

</li>browser.sessionstore.restore_pinned_tabs_on_demand — установите значение «true», чтобы отключить возможность загрузки закрепленных вкладок при запуске браузера. Они не будут загружены в фоновом режиме и потреблять много оперативной памяти до тех пор, пока вы перейдите к ним.</li>network.prefetch-next — отключает предварительную загрузку страниц. Это тот самый пререндер, анализирующий ссылки и предугадывающий, куда вы перейдете. Задайте ему значение «false», чтобы отключить данную функцию.</li></ul>

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

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

close.pngМы рады, что смогли помочь Вам в решении проблемы.
close.pngОпишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации