Спецпроекты

Разработчики Chrome придумали, как запретить ему пожирать память

26944
ПО Софт Интернет Интернет-ПО Техника Открытое ПО
Экспериментальная версия браузера Google Chrome теперь распоряжается оперативной памятью более продуманным образом. Схожий по задумке механизм экономии ресурсов ПК, разработанный Mozilla для своего Firefox, по-прежнему работает неправильно.

Новый подход к управлению ресурсами

Разработчики Google Chrome тестируют новую функцию, которая позволит популярному браузеру рациональнее распоряжаться имеющейся оперативной памятью, а пользователям даст больше контроля над этим процессом. Об этом сообщила Softpedia.

Система под названием Tab Freeze позволяет браузеру «замораживать» неактивные вкладки, то есть выгружать из оперативной памяти содержимое открытых вкладок, которые не использовались в течение некоторого времени, тем самым экономя ресурсы ПК.

Tab Freeze добавлена в последнюю экспериментальную сборку Chrome 79 (Canary) для ОС Windows, macOS, Linux и Chrome OS. Chrome Canary – это ежедневное обновление для разработчиков, занимающихся тестированием браузера.

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

Активация Tab Freeze

Функция Tab Freeze может быть активирована на странице chrome://flags/#proactive-tab-freeze.

Пользователю на выбор предлагается четыре режима работы Tab Freeze: Enabled («Включена»), Enabled Freeze – No Unfreeze («Включена. Без размораживания»), Enabled Freeze – Unfreeze 10 seconds every 15 minutes («Включена. Размораживать на 10 секунд каждые 15 минут») и Disabled («Выключена»). Стоит отметить, что при выборе первой опции вкладки, которые не использовались в течение пяти минут, будут автоматически выгружены из памяти.

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

Зачем это нужно

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

Пользователю на выбор предлагается четыре режима работы Tab Freeze

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

Неудавшаяся попытка Mozilla

Аналогичным образом решить проблему «прожорливости» браузера пытались и в Mozilla. В марте 2019 г. в экспериментальную версию Firefox (67) добавили механизм выгрузки неактивных вкладок, спустя почти восемь лет после того, как эта идея была впервые предложена сообществом.

Разработчики Firefox решили, что при нехватке памяти вкладки должны выгружаться в строго определенном порядке, таким образом, не создавая неудобств пользователю. В первую очередь закрываются вкладки, которые не закреплены и не воспроизводят звук. Затем – закрепленные, но не проигрывающие аудио. Последними освобождаются те, которые воспроизводят звук.

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

В актуальной стабильной версии Firefox (69.0.3), как и в экспериментальной (71.0a1) сборке, функция все еще отключена по умолчанию. В этом можно убедиться, введя в строке браузера about:config и выполнив поиск по словам browser.tabs.unloadonlowmemory.



Профиль месяца

Искусственный интеллект стал полумифическим понятием

Сергей Поляков

ИТ-директор Альфа-Банка

Взгляд месяца

Идея внутренней разработки себя не оправдала

Наталия Оржевская

директор центра управления командами, «Диасофт»