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

Обновлено: 21.11.2024

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

Установка и запуск

Память и производительность

Функциональность

Подключение

Контент веб-сайта

Видео, музыка и игры

Установка и запуск

Память и производительность

Функциональность

Подключение

Контент веб-сайта

Видео, музыка и игры

Опишите, что происходит, шаг за шагом:

Что произошло до возникновения этой проблемы (например, вы обновили браузер или ОС? Вы установили программу или расширение?).

Если возможно, прикрепите снимок экрана.

Браузер работает медленно

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

Совет. Вы можете открыть окно «Очистить историю», нажав следующие клавиши: Ctrl + Shift + Del (в Windows) или Shift + ⌘ + Backspace (в macOS).

Браузер использует слишком много памяти

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

Предварительная загрузка . Браузер пытается определить, по какой ссылке можно щелкнуть, и заранее загружает данные страницы.

В среднем при нескольких открытых вкладках Яндекс.Браузер потребляет от 300 до 1000 МБ оперативной памяти. Если на странице есть сложные объекты Flash, использование ОЗУ может возрасти до 1000 МБ.

предварительная загрузка страниц (нажмите → Настройки и в разделе Поиск отключите параметр Запрашивать данные страницы заранее, чтобы страницы загружались быстрее);

Яндекс.Браузер запускает множество процессов

Браузер зависает

Если ваш браузер зависает, обратитесь в нашу службу поддержки, используя форму обратной связи. Как можно подробнее опишите свою ситуацию:

Опишите, что произошло до того, как браузер перестал отвечать (например, вы переустанавливали браузер, обновляли или устанавливали программы или расширения?)

Если браузер медленно открывает страницы, то уточните в своем сообщении следующее:

Добавьте ссылку на журнал net-export. Вам нужно будет сделать скриншоты этого журнала (как описано в инструкции) и загрузить их в любое облачное хранилище по вашему выбору.

Если у вас возникли проблемы с открытием страниц, включите текст ошибки в свое сообщение.

Существует несколько причин, по которым сайт может не открываться:

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

Проверьте, сохраняется ли проблема.

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

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

Откройте оболочку Windows. Нажмите Windows + R на клавиатуре или введите «Выполнить» в строке поиска. В открывшемся диалоговом окне введите cmd с клавиатуры.

Если сайт открывается в любом браузере, кроме Яндекс.Браузера, отправьте сообщение в нашу службу поддержки через форму обратной связи. Подробно опишите ситуацию и по возможности прикрепите скриншот.

Ошибка DNS

Если вы видите это сообщение об ошибке при открытии страницы, попробуйте решить проблему одним из следующих способов:

Совет. Вы можете открыть окно «Очистить историю», нажав следующие клавиши: Ctrl + Shift + Del (в Windows) или Shift + ⌘ + Backspace (в macOS).

Откройте оболочку Windows. Нажмите Windows + R на клавиатуре или введите «Выполнить» в строке поиска. В открывшемся диалоговом окне введите cmd с клавиатуры.

Ошибка прокси-сервера

Ошибка сбоя соединения

Ошибка "Ошибка подключения" означает, что браузеру не удалось получить веб-страницу.

Сбои могут возникать по следующим причинам:

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

Проверьте список заблокированных ресурсов в вашем антивирусе (брандмауэре Windows). Если вы найдете страницу в списке, удалите ее.

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

Просканируйте компьютер с помощью антивируса или бесплатных утилит.

Откройте оболочку Windows. Нажмите Windows + R на клавиатуре или введите «Выполнить» в строке поиска. В открывшемся диалоговом окне введите cmd с клавиатуры.

Ошибка ERR_CERT_AUTHORITY_INVALID

Откройте сертификат CA Certum в Блокноте и сохраните его, удалив расширение .txt, чтобы получить файл CA.pem.

Откройте сертификат Certum Trusted Network CA в Блокноте и сохраните его после удаления расширения .txt, чтобы получить файл CTNCA.pem.

Откройте оболочку Windows. Нажмите Windows + R или введите «Выполнить» в строке поиска. В открывшемся диалоговом окне введите команду certmgr.msc.

Убедитесь, что в поле Хранилище сертификатов указано значение Доверенные корневые центры сертификации. Нажмите Далее .

Функции сайта не работают

Если вы видите знак:

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

Содержимое страницы отображается неправильно

Веб-страницы могут отображаться неправильно. Например, вместо букв могут отображаться искаженные символы или может быть нарушено форматирование страницы.

Самая частая причина некорректного отображения сайта — использование прокси-сервера или дополнительного брандмауэра (помимо стандартного брандмауэра Windows). Временно отключите их, чтобы узнать, влияют ли они на отображение страниц сайта. Мы не рекомендуем использовать утилиты, вызывающие ошибки отображения.

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

Совет. Вы можете открыть окно «Очистить историю», нажав следующие клавиши: Ctrl + Shift + Del (в Windows) или Shift + ⌘ + Backspace (в macOS).

С некоторыми встроенными видеокартами после обновления Яндекс.Браузера могут возникать ошибки:

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

Если вы получаете одну из этих ошибок, отмените выбор параметра Аппаратное ускорение в браузере:

Изображения не отображаются

Существует несколько причин, по которым изображения или фотографии могут не отображаться:

Некоторые расширения (например, блокировщики рекламы) ограничивают отображение содержимого страницы, включая видео и изображения.

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

В этом случае значок появляется в SmartBox.

На панели «Защита» нажмите ссылку «Подробнее» в разделе, где отображается статус подключения.

Если изображение на странице отображается некорректно (например, теряется прозрачность изображения PNG) или имеет низкое качество, попробуйте отключить оптимизацию изображения:

Браузер портит цветопередачу

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

Установка и запуск

Память и производительность

Функциональность

Подключение

Контент веб-сайта

Видео, музыка и игры

Установка и запуск

Память и производительность

Функциональность

Подключение

Контент веб-сайта

Видео, музыка и игры

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

Браузер не запускается

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

Опишите, что происходит, шаг за шагом:

Что происходит, когда вы пытаетесь открыть Яндекс.Браузер (например, вы получаете сообщение об ошибке или окно браузера открывается некорректно).

Что произошло до возникновения этой проблемы (например, вы обновили браузер или ОС? Вы установили программу или расширение?).

Если возможно, прикрепите снимок экрана.

Браузер работает медленно

Временно отключить все расширения: → Расширения .

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

Нажмите → Дополнительно → Очистить историю.

Нажмите → История → История .

Нажмите → Дополнительно → Очистить историю.

Совет. Вы можете открыть окно «Очистить историю», нажав следующие клавиши: Ctrl + Shift + Del (в Windows) или Shift + ⌘ + Backspace (в macOS).

Если вам не удалось решить проблему, обратитесь в службу поддержки по телефону и максимально подробно опишите ситуацию.

Браузер использует слишком много памяти

Современные браузеры активно используют оперативную память. Полнофункциональные приложения заменили статические страницы в Интернете. Допустим, на одной вкладке у вас открыт музыкальный проигрыватель, на другой — видео YouTube, а на третьей — онлайн-редактор. Чтобы вы могли быстро переключаться между вкладками, ваши данные должны храниться в оперативной памяти.

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

Предварительная загрузка . Браузер пытается определить, по какой ссылке можно щелкнуть, и заранее загружает данные страницы.

В среднем при нескольких открытых вкладках Яндекс.Браузер потребляет от 300 до 1000 МБ оперативной памяти. Если на странице есть сложные объекты Flash, использование ОЗУ может возрасти до 1000 МБ.

предварительная загрузка страниц (нажмите → Настройки и в разделе Поиск отключите параметр Запрашивать данные страницы заранее, чтобы страницы загружались быстрее);

Яндекс.Браузер запускает множество процессов

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

Браузер зависает

Если ваш браузер зависает, обратитесь в нашу службу поддержки, используя форму обратной связи. Как можно подробнее опишите свою ситуацию:

Опишите, что произошло до того, как браузер перестал отвечать (например, вы переустанавливали браузер, обновляли или устанавливали программы или расширения?)

Если браузер медленно открывает страницы, то уточните в своем сообщении следующее:

Добавьте ссылку на журнал net-export. Вам нужно будет сделать скриншоты этого журнала (как описано в инструкции) и загрузить их в любое облачное хранилище по вашему выбору.

Если у вас возникли проблемы с открытием страниц, включите текст ошибки в свое сообщение.

Сайт не открывается

Существует несколько причин, по которым сайт может не открываться:

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

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

Нажмите → Настройки .

Проверьте, сохраняется ли проблема.

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

Временно отключить все расширения: → Расширения .

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

Откройте оболочку Windows. Нажмите Windows + R на клавиатуре или введите «Выполнить» в строке поиска. В открывшемся диалоговом окне введите cmd с клавиатуры.

Если сайт открывается в любом браузере, кроме Яндекс.Браузера, отправьте сообщение в нашу службу поддержки через форму обратной связи. Подробно опишите ситуацию и по возможности прикрепите скриншот.

Ошибка DNS

Если вы видите это сообщение об ошибке при открытии страницы, попробуйте решить проблему одним из следующих способов:

Нажмите → Дополнительно → Очистить историю.

Совет. Вы можете открыть окно «Очистить историю», нажав следующие клавиши: Ctrl + Shift + Del (в Windows) или Shift + ⌘ + Backspace (в macOS).

Нажмите → Дополнительно → Очистить историю.

Откройте оболочку Windows. Нажмите Windows + R на клавиатуре или введите «Выполнить» в строке поиска. В открывшемся диалоговом окне введите cmd с клавиатуры.

Ошибка прокси-сервера

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

Нажмите → Настройки .

Ошибка сбоя соединения

Ошибка "Ошибка подключения" означает, что браузеру не удалось получить веб-страницу.

Сбои могут возникать по следующим причинам:

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

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

Проверьте список заблокированных ресурсов в вашем антивирусе (брандмауэре Windows). Если вы найдете страницу в списке, удалите ее.

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

Просканируйте компьютер с помощью антивируса или бесплатных утилит.

Откройте оболочку Windows. Нажмите Windows + R на клавиатуре или введите «Выполнить» в строке поиска. В открывшемся диалоговом окне введите cmd с клавиатуры.

Нажмите → Настройки .

Ошибка ERR_CERT_AUTHORITY_INVALID

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

Откройте сертификат CA Certum в Блокноте и сохраните его, удалив расширение .txt, чтобы получить файл CA.pem.

Откройте сертификат Certum Trusted Network CA в Блокноте и сохраните его после удаления расширения .txt, чтобы получить файл CTNCA.pem.

Откройте оболочку Windows. Нажмите Windows + R или введите «Выполнить» в строке поиска. В открывшемся диалоговом окне введите команду certmgr.msc.

Убедитесь, что в поле Хранилище сертификатов указано значение Доверенные корневые центры сертификации. Нажмите Далее .

Функции сайта не работают

Если вы видите знак:

Нажмите → Настройки .

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

Содержимое страницы отображается неправильно

Веб-страницы могут отображаться неправильно. Например, вместо букв могут отображаться искаженные символы или может быть нарушено форматирование страницы.

Самая частая причина некорректного отображения сайта — использование прокси-сервера или дополнительного брандмауэра (помимо стандартного брандмауэра Windows). Временно отключите их, чтобы узнать, влияют ли они на отображение страниц сайта. Мы не рекомендуем использовать утилиты, вызывающие ошибки отображения.

Временно отключить все расширения: → Расширения .

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

Когда в браузерах заканчивается память, они выгружают из нее самые старые вкладки. Это раздражает, потому что нажатие на такую ​​вкладку приводит к перезагрузке страницы. Сегодня мы расскажем читателям Хабра, как команда Яндекс.Браузера решает эту проблему с помощью технологии Hibernate.

браузеры, основанные на Chromium, следствия по ходу каждой вкладки. Этот подход имеет много преимуществ. Это и безопасность (изолированность сайтов друг от друга), и стабильность (падение одного процесса не тащит весь браузер), и ускорение работы на современных процессорах с большим количеством ядер. Но есть и минус — более высокое потребление памяти, чем при использовании одного процесса на все. Если бы браузеры ничего с этим не делали, то их пользователи постоянно видели бы что-то вроде этого:

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

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

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

Проблема выгрузки вкладок особенно неприятна при отсутствии доступа к сети. Отложили вкладку с Хабром для чтения на борту самолета? Будьте готовы, что полезная статья превратится в тыкву.

Разработчики браузеров понимают, что эта крайняя мера раздражает пользователей (просто ищите, чтобы оценить масштаб), поэтому применяйте ее в последний момент. В этот момент компьютер уже тормозит из-за нехватки памяти, пользователи замечают это и ищут альтернативные пути решения проблемы, поэтому, например, у расширения The Great Suspender более 1,4 млн пользователей.

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

Спящий режим в Яндекс.Браузере

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

Наша команда участвует в разработке проекта Chromium, куда вносит значительные изменения по оптимизации и новые функции. Еще в 2015 году мы обсуждали с коллегами из проекта идею сохранения состояния вкладок на жестком диске и даже успели сделать ряд улучшений, но в Chromium решили заморозить это направление. Мы решили иначе и продолжили разработку в Яндекс.Браузере. Это заняло больше времени, чем планировалось, но оно того стоило. Ниже мы поговорим о технической начинке технологии Hibernate, а пока начнем с общей логики.

Несколько раз в минуту Яндекс.Браузер проверяет объем доступной памяти, и если он меньше порогового значения в 600 мегабайт, то в дело вступает Hibernate. Все начинается с того, что Браузер находит самую старую (используемую) фоновую вкладку. Кстати, у среднего пользователя открыто 7 вкладок, а у 5% больше 30.

Нельзя выгружать из памяти любую старую вкладку — можно сломать что-то действительно важное. Например, прослушивание музыки или общение в веб-мессенджере. Сейчас таких исключений 28. Если на вкладке не помещается хотя бы одна из них, то Браузер переходит к проверке следующей.

Если найдена вкладка, соответствующая требованиям, то начинается процесс ее сохранения.

Сохранение и восстановление вкладок в спящем режиме

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

У нас есть дерево DOM и небольшой скрипт, который просто добавляет элемент div в тело. С точки зрения Blink эта страница выглядит примерно так:
Давайте посмотрим на взаимосвязь между Blink и V8 на примере HTMLBodyElement:
Вы можете видеть, что Blink и V8 имеют разные представления одних и тех же объектов и тесно связаны друг с другом.Так мы пришли к исходной идее — поддерживать полное состояние V8, а для Blink хранить только атрибуты HTML в виде текста. Но это было ошибкой, потому что мы потеряли те состояния DOM-объектов, которые не хранились в атрибутах. Мы также потеряли состояния, которые не были сохранены в DOM. Решением этой проблемы было полное сохранение Blink. Но не все так просто.

Сначала необходимо собрать информацию об объектах Blink. Поэтому в момент сохранения V8 мы не только останавливаем JS и кастуем его, но и собираем в памяти ссылки на DOM-объекты и другие вспомогательные объекты, доступные для JS. Мы также проходим по всем объектам, до которых можно добраться из объектов Document — корневым элементам каждого фрейма страницы. Так мы собираем информацию обо всем, что важно сохранить. Самое сложное — научиться экономить.

Если мы посчитаем все классы Blink, которые представляют дерево DOM, а также различные API HTML5 (например, холст, мультимедиа, геолокацию), мы получим тысячи классов. Написать логику сохранения всех классов руками практически невозможно. Но хуже всего то, что даже если вы это сделаете, поддерживать его будет невозможно, потому что мы регулярно обновляем новые версии Chromium, которые вносят неожиданные изменения в какой-либо класс.

Наш браузер для всех платформ создан с использованием clang. Чтобы решить проблему сохранения классов Blink, мы создали плагин для clang, который строит AST (абстрактное синтаксическое дерево) для классов. Например, этот код:

Он превращается в такой XML:

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

Всего мы генерируем код примерно для 1000 классов Blink. Например, мы научились сохранять такой сложный класс, как Canvas. Вы можете рисовать из него в JS-коде, задавать множество свойств, задавать параметры кисти для рисования и так далее. Сохраняем все эти свойства, параметры и саму картинку.

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

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

Мы записали видео с наглядной демонстрацией того, как Hibernate выгружает и восстанавливает переходные вкладки, сохраняя при этом прогресс в JS-игре, введенный в тексте и позиции видео:

Обзор

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

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

Mozilla планирует представить в стабильной версии Firefox 67 новую функцию, направленную на улучшение использования памяти браузером в условиях нехватки памяти.

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

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

Использование памяти, особенно на устройствах с небольшим объемом памяти, является приоритетом для разработчиков браузеров. Если вы используете Firefox или другой браузер в системе с 4 или 2 гигабайтами оперативной памяти, вы можете столкнуться с большим объемом кэширования, если вы открываете достаточное количество сайтов или сайты нужного типа.

Идея выгрузки вкладок в браузере для освобождения памяти не нова.Такие расширения, как бездействие, приостановка фоновых вкладок, BarTab или вкладка выгрузки для Firefox (все они больше не совместимы с Firefox 57 или более поздней версии), а также вкладки с отложенной загрузкой, TabMemFree или ограничитель вкладок для Google Chrome, поддерживали эту функциональность в течение многих лет

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

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

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

  1. Обычные вкладки
  2. Закрепленные вкладки
  3. Обычные вкладки, воспроизводящие аудио
  4. Закрепленные вкладки, воспроизводящие аудио

Эта функция уже доступна в Firefox Nightly. В моей системе он был включен по умолчанию, но вы можете управлять им с помощью параметра browser.tabs.unloadOnLowMemory.

True означает, что функция включена, False — что она отключена. Похоже, что на данный момент он доступен только для Windows, потому что это единственная платформа, на которой Mozilla может обнаруживать условия нехватки памяти, согласно ответственному за ошибку Гарбриэле Свелто.

Firefox 67 будет выпущен 14 мая 2019 года в стабильном канале браузера в соответствии с графиком выпуска.

Google реализовал аналогичную функцию в своем браузере Chrome. Представленная в 2015 году функция удаления вкладок в Chrome удаляла вкладки из памяти, если системная память достигала определенного порога.

Заключительные слова

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

Теперь вы: сколько памяти обычно использует ваш браузер?

Mozilla планирует представить в стабильной версии Firefox 67 новую функцию, направленную на улучшение использования памяти браузером в условиях нехватки памяти.

О Мартине Бринкманне

Мартин Бринкман – журналист из Германии, который в 2005 году основал Ghacks Technology News. Он увлекается технологиями и знает Интернет и компьютеры как свои пять пальцев. Вы можете следить за Мартином в Facebook или Twitter

Похожий контент

Каждая загрузка Firefox имеет уникальный идентификатор

Firefox теперь отображает субтитры для видео в режиме «Картинка в картинке» на ночном канале

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

Служба сканирования на вирусы VirusTotal выпускает расширение VT4Browsers для Chrome и Firefox

Обновление Firefox Relay добавляет вложения большего размера и фильтр для рекламных писем

Комментарии

В настоящее время существует несколько совместимых с Firefox Quantum расширений, которые имеют дело с приостановкой вкладок либо автоматически, либо вручную; Я знаю об этом позже, на самом деле я в процессе блуждания, если бы я установил одну из них, я сомневаюсь, потому что у меня никогда не открывается много вкладок, а моих 8 ГБ достаточно, чтобы не приостанавливать ни одну из них:

Автоматическое удаление вкладок
Подтяжка вкладок
Всего подтяжек

Но эти расширения, в отличие от объявленной в Firefox 67 выгрузки встроенных вкладок, при автоматическом выполнении, таком как «Автоматическое отбрасывание вкладок», полагаются на количество открытых вкладок, а не на критерии памяти.

В Firefox есть очень интересная встроенная функция, о которой я редко слышу:

about:memory / Свободная память / минимизировать использование памяти

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

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

@Tom Hawack: спасибо за совет about:memory. Единственное, вам нужно запускать его вручную каждый раз, когда вы хотите уменьшить объем памяти.

Мой Firefox в среднем занимает около 1,2 ГБ (стандартные процессы 8+2)

«минимизировать использование памяти» > обычно от 288 до 500 с Pale Moon (с 39 расширениями). Квант, змея, кусающая себя за хвост.

Это отличная новость, сейчас я также использую замечательную вкладку Auto Discard.

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

В настоящее время, если у вас отключен e10s, выгрузка вкладок не работает.

Очень многие люди рекомендовали Auto Tab Discard, но я считаю его ненадежным (либо я не хочу отбрасывать вкладки, либо он просто не работает). Возможно, это конфликтует с другими моими аддонами IDK. Но Tab Unloader всегда помогает мне лучше:

Я также думаю, что *удаление* вкладки может отличаться от ее *выгрузки* (не так ли?).

> Но Tab Unloader всегда работает лучше
> для меня

Спасибо за упоминание этого веб-расширения. Я не знал об этом и тоже попробую, хотя до сих пор я был вполне доволен A-T-D. Я также обнаружил эту проблему:

> Я также думаю, что *удаление* вкладки
> может отличаться от *выгрузки* вкладки (не так ли?).

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

Сокращение объема памяти, используемого Chrome, — одна из главных задач команды в этом году. Мы уже заметили снижение использования памяти GMail на 45 % благодаря улучшениям в процессе сборки мусора в V8, но на самом деле мы только начинаем. Один из наших следующих экспериментов по использованию памяти нацелен на тех, кто накапливает вкладки (таких как я). Это называется отбрасывание вкладок.

Отказ от вкладок доступен в качестве эксперимента в Chrome 46 и более поздних версиях.

Фон

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

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

Именно здесь отбрасывание вкладок может помочь сократить использование памяти.

Удаление неиспользуемых вкладок

Отказ от вкладок позволяет Chrome автоматически отбрасывать вкладки, которые не представляют для вас большого интереса, когда обнаруживается, что системной памяти недостаточно. Что мы подразумеваем под отказом? Ну, выброшенная вкладка никуда не денется. Мы убиваем его, но он все еще виден на вкладке Chrome. Если вы вернетесь к заброшенной вкладке, она перезагрузится при нажатии. Содержимое формы, положение прокрутки и т. д. сохраняются и восстанавливаются так же, как при переходе вперед/назад по вкладкам.

Новая страница под названием chrome://discards позволяет перечислить, какие вкладки открыты в данный момент, и мы пытаемся поделиться своим мнением о том, насколько (на наш взгляд) они вам интересны, от большего к меньшему.

Чтобы протестировать эту функцию, вы можете либо вести обычный просмотр, пока ваша система не перейдет в режим нехватки памяти, либо активировать сброс вкладки из about:discards, нажав "Отменить вкладку сейчас". Это удалит последнюю вкладку в списке. Вы также можете удалить конкретную вкладку из списка, нажав соответствующую кнопку «Отменить». Отброшенная вкладка будет отображаться с префиксом [Отброшено].

Отмена вкладки удаляет вкладки в следующем порядке:

  • Внутренние страницы, такие как новая вкладка, закладки и т. д.
  • Вкладки выбраны давно
  • Недавно выбранные вкладки
  • Приложения, работающие в окне
  • Закрепленные вкладки
  • Выбранная вкладка

Мы включили эксперимент по отбрасыванию вкладок в Chrome Canary для Windows и Mac OS, и скоро будет реализована реализация для Linux.

Вдохновение: привет, отличные подтяжки

Если отбрасывание табуляции кажется вам знакомым, это потому, что вы, вероятно, сталкивались с полезными расширениями Chrome, которые предлагают несколько более простую версию этой идеи, например The Great Suspender. Целью Great Suspender является сокращение объема памяти и ресурсов графического процессора Chrome путем приостановки работы вкладок после заданного периода бездействия.

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

Вкладки в фоновом режиме, которые я активно не использую, приостановлены для экономии памяти. Вкладки, которые я до сих пор активно использую (GitHub и YouTube), работают как обычно.

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

Будущие улучшения: сериализатор вкладок

Сериализатор вкладок — это будущая часть работы, которая, по нашему мнению, может привести к значительным улучшениям в нашем текущем подходе к отбрасыванию вкладок. Он берет содержимое вкладки Chrome и сериализует ее *текущее* состояние в двоичный двоичный объект. Позже этот двоичный объект можно десериализовать во вкладку.

Сериализатор будет сериализовать почти все, что нужно Chrome, Blink и V8 для правильного сохранения вкладки (чего исторически не могли легко достичь расширения Chrome, решающие эту проблему). Сериализация будет включать обычные подозреваемые: DOM (с включенным большим количеством WebGL и Canvas), CSS и состояние виртуальной машины JavaScript V8.

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

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

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

Если не указано иное, содержимое этой страницы предоставляется по лицензии Creative Commons Attribution 4.0, а образцы кода — по лицензии Apache 2.0. Подробнее см. в Правилах сайта Google Developers. Java является зарегистрированным товарным знаком Oracle и/или ее дочерних компаний.

Читайте также: