Сколько памяти потребляет сайт

Обновлено: 07.07.2024

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




Браузеры автоматически управляют памятью, выделяемой веб-страницам. Когда страница создаёт объект, браузер, используя свои внутренние механизмы, выделяет память для хранения этого объекта. Так как память — это не бесконечный ресурс, браузер периодически выполняет процедуру сборки мусора, в ходе которой обнаруживаются ненужные объекты и очищается занимаемая ими память. Процесс обнаружения таких объектов, правда, не идеален. Было доказано, что абсолютно точное и полное выявление таких объектов — неразрешимая задача. В результате браузеры заменяют идею поиска «ненужных объектов» на идею поиска «недостижимых объектов». Если веб-страница не может обратиться к объекту через имеющиеся у неё переменные и поля других объектов, достижимых для неё, это значит, что браузер может безопасно очистить память, занимаемую таким объектом. Разница между «ненужным» и «недостижимым» приводит к утечкам памяти, что проиллюстрировано в следующем примере:


Здесь имеется большой ненужный массив b , но браузер не освобождает занимаемую им память из-за того, что он достижим через свойство объекта object.b в коллбэке. В результате память, занимаемая этим массивом, «утекает».

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

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

Чем новый API performance.measureMemory() отличается от старого performance.memory?

Если вы знакомы с существующим нестандартным API performance.memory , то вас, возможно, интересует вопрос о том, чем новый API отличается от старого. Главное отличие заключается в том, что старый API возвращает размер JavaScript-кучи, а новый оценивает использование памяти всей веб-страницей. Это различие оказывается важным в том случае, когда Chrome организует совместное использование кучи несколькими веб-страницами (или несколькими экземплярами одной и той же страницы). В таких случаях результаты, возвращаемые старым API, могут быть искажены. Так как старый API определён в терминах, специфичных для реализации, таких, как «куча», его стандартизация — безнадёжное дело.

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

Рекомендуемые способы использования нового API

Использование памяти веб-страницами зависит от возникновения событий, от действий пользователя, от сборки мусора. Именно поэтому API performance.measureMemory() предназначен для исследования уровня использования памяти в продакшне. Результаты вызова этого API в тестовом окружении менее полезны. Вот примеры вариантов его использования:

  • Выявление случаев замедления работы приложения в ходе развёртывания новой версии веб-страницы при обнаружении новых утечек памяти.
  • A/B-тестирование новой возможности, направленное на оценку её воздействия на память и на обнаружение утечек памяти.
  • Сопоставление использования памяти и длительности сессии для подтверждения наличия или отсутствия утечек памяти.
  • Сопоставление использования памяти с метриками, характеризующими пользователя. Это позволяет понять воздействие уровня использования памяти на работу с приложением.

Браузерная совместимость

Сейчас рассматриваемый API поддерживается только в Chrome 83, по схеме Origin Trial. Результаты, возвращаемые API, сильно зависят от реализации, так как разные браузеры используют разные способы представления объектов в памяти и разные способы оценки уровня использования памяти. Браузеры могут исключать из учёта некоторые области памяти в том случае, если полный учёт всей используемой памяти является неоправданно сложной или невыполнимой задачей. В итоге можно сказать, что результаты, выдаваемые этим API в разных браузерах, не поддаются сравнению. Сравнивать имеет смысл лишь результаты, полученные в одном и том же браузере.

Текущий ход работ

Шаг Состояние
1. Создание пояснений к API
Завершено
2. Создание черновика спецификации
Выполняется
3. Сбор отзывов и доработка проекта
Выполняется
4. Испытания по схеме Origin Trial
Выполняется
5. Запуск
Не начат

Использование performance.measureMemory()

▍Включение поддержки на этапе Origin Trial

API performance.measureMemory() доступен в Chrome 83 по схеме Origin Trial. Ожидается, что эта фаза завершится с выходом Chrome 84.

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

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

▍Включение новой возможности через флаги Chrome

▍Проверка возможности использования API

Вызов функции performance.measureMemory() может завершиться неудачно, с выдачей ошибки SecurityError. Это может произойти в том случае, если окружение не удовлетворяет требованиям по безопасности, касающимся утечек информации. В процессе Origin Trial-тестирования в Chrome этот API требует включения возможности Site Isolation. Когда API будет готов к обычному использованию, он будет полагаться на свойство crossOriginIsolated. Веб-страница может работать в таком режиме, установив заголовки COOP и COEP.

Вот пример кода:

▍Локальное тестирование

Chrome выполняет измерение памяти при сборке мусора. Это означает, что обращение к API не приводит к мгновенному разрешению промиса. Для получения результата нужно дождаться следующего сеанса сборки мусора. API принудительно запускает сборку мусора по прошествии определённого тайм-аута, который в настоящее время установлен на 20 секунд. Если запустить Chrome с флагом командной строки --enable-blink-features='ForceEagerMeasureMemory' , то тайм-аут будет снижен до нуля, что полезно для целей локальной отладки и локального тестирования.

Пример

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

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


Функция measurementInterval() находит случайный интервал, выраженный в миллисекундах, задаваемый таким образом, чтобы одно измерение проводилось бы примерно каждые пять минут. Если вам интересны математические концепции, на которых основана эта функция — почитайте об экспоненциальном распределении.


В итоге асинхронная функция performMeasurement() вызывает наш API, записывает результат и планирует следующее измерение.


Результаты измерений могут выглядеть так:


Оценка общего уровня использования памяти выводится в поле bytes . При выводе этой оценки используются разделители разрядов чисел. Эти значения сильно зависят от реализации. Если они получены для разных браузеров, то сравнивать их нельзя. То, как они получаются, может различаться даже в разных версиях одного и того же браузера. Пока длится программа Origin Trial — в возвращаемые значения входят показатели использования JavaScript-памяти главным окном, показатели использования памяти элементов iframe с того же сайта, и показатели связанных окон. Когда API будет готов, это значение будет представлять собой сведения о памяти, потребляемой JavaScript, DOM, всеми элементами iframe , связанными окнами и веб-воркерами.

Список breakdown даёт более подробную информацию об используемой памяти. Каждая запись описывает некий фрагмент памяти и связывает этот фрагмент с набором окон, элементов iframe или воркеров, идентифицируемых с помощью URL. В поле userAgentSpecificTypes перечисляются типы памяти, определяемые особенностями реализации.

Важно рассматривать эти списки в общем виде и не пытаться, опираясь на особенности некоего браузера, анализировать всё, основываясь на них. Например, некоторые браузеры могут возвращать пустой список breakdown или пустые поля attribution . Другие браузеры могут возвращать в элементе attribution по несколько URL, указывая на то, что они не могут точно определить, какому из этих URL принадлежит память.

Обратная связь

Web Performance Community Group и команда разработчиков Chrome рады будут узнать о том, что вы думаете о performance.measureMemory() , и узнать о вашем опыте использования этого API.

Поделитесь с нами своими идеями об устройстве API

Есть ли в этом API что-то такое, что работает не так, как ожидается? Может, в нём не хватает чего-то такого, что нужно вам для реализации вашей идеи? Откройте новую задачу в трекере проекта или прокомментируйте существующую задачу.

Поставили точку в этом вопросе, а заодно развенчали миф о гигантских аппетитах Chrome.


Эксперимент: сколько памяти реально «жрут» разные браузеры

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

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

Методика тестирования

В список тестируемых программ попали: Google Chrome, Yandex Browser, Microsoft Edge, Opera GX и Firefox. В каждом браузере мы открыли 5 одинаковых вкладок: главные страницы VK, Instagram, Youtube, Twitch и «Авито». Какие либо плагины и расширения дополнительно не устанавливались. В качестве операционной системы была выбрана Windows 10 с последними обновлениями.


В простое ОС вместе с самым базовым набором программ (Afterburner для мониторинга, Joxi для создания скриншотов и GeForce Experience в качестве драйвера для видеокарты) потребляла около 3,2 Гбайт оперативной памяти. Всего в компьютере было установлено 32 Гбайт ОЗУ.

Google Chrome

Начнем с утилиты, которая долгое время удерживала пальму первенства среди самых прожорливых программ. Судя по всему, мемы про ненасытное детище Google окончательно остались в прошлом, потому что программа съела чуть больше гигабайта. Датчики плясали вокруг отметки в 4,3 Гбайт.


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

Как изменить браузер по умолчанию в Windows 10 и более ранних версиях

Opera GX

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


Однако, здесь можно обнаружить очень удобную функцию под названием GX Control, которая позволяет выделить фиксированный объем оперативной памяти под нужды браузера. То же самое легко сделать и с ресурсами процессора. А Hot Tab Killer покажет, сколько ресурсов потребляет каждая из открытых вкладок.

Yandex Browser

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


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

Почему нет смысла очищать оперативную память смартофонов на Android?

Firefox

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


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

Microsoft Edge

Встроенное в Windows 10 средство для просмотра интернет-сайтов никогда не воспринималось пользователями всерьез. Однако совсем недавно разработчики выкатили новое обновление, в результате которого их программа стала потреблять намного меньше оперативной памяти. Наш тест показал результат в районе 3,9 Гбайт.


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

Выводы

Мы ожидали, что разница в потреблении памяти у разных браузеров будет более существенной. Пожалуй, нужно было открыть вкладок 20, чтобы быть ближе к реальности. Но итог можно подвести и так: даже при ограниченном объеме ОЗУ пользуйтесь тем браузером, который вам нравится больше. Разница в аппетитах не так принципиальна (если, конечно, у вас не древний ПК с ОЗУ 4 Гбайт, и приходится учитывать каждый мегабайт).

Почему браузер Chrome потребляет много оперативной памяти и что с этим делать

Google Chrome — самый популярный браузер в мире, которым пользуется каждый второй человек. Несмотря на все его преимущества, почти все пользователи знают, что Chrome — большой обжора относительно оперативной памяти. Почему браузер часто потребляет аномально большой объем ОЗУ и как с этим можно бороться – рассказываем и показываем.

Как проверить, сколько ОЗУ потребует Google Chrome

Для начала следует оценить, как много оперативной памяти потребляет ваш браузер. Никакой специализированный софт устанавливать не нужно, достаточно воспользоваться стандартным диспетчером задач. Перейдите на вкладку «Процессы», сделайте сортировку по имени и найдите Google Chrome. Число потребляемой ОЗУ будет указано в соответствующей колонке. В нашем случае в браузере открыто десять вкладок, и Chrome потребляет меньше 1 Гб памяти.


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

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


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

Оптимальный и самый правильный выход в этой ситуации — нарастить объем ОЗУ. Сэкономите свои силы и нервы.

Однако если такой возможности нет, рекомендуем попробовать несколько способов, как ограничить Google Chrome потребление оперативной памяти.

Как сэкономить ОЗУ с Google Chrome

Работа с вкладками. Механика работы браузера устроена таким образом, что каждая отдельная вкладка создает новый процесс. Именно поэтому в диспетчере задач вы можете увидеть несколько десятков процессов Google Chrome. Такой подход сделан с целью повышения стабильности: если зависнет одна вкладка, то эта проблема не затронет другие. Однако пользователи с небольшим количеством ОЗУ могут испытывать проблемы при открытии множества вкладок.

Банальный совет — пользоваться меньшим числом вкладок, однако на практике сделать это можно не всегда. Решить проблему можно с помощью специальных ключей запуска. Например, ключ «–process-per-site» заставляет браузер создавать только один процесс для одного сайта. Это актуально, если вы часто пользуетесь только социальными сетями или конкретными сайтами. Ключ необходимо дописать в поле «Объект» для ярлыка.


Давайте проведем тест: запустим в Google Chrome без этого ключа пять стартовых страниц Яндекс. Диспетчер задач показывает целых 14 процессов и потребление ОЗУ на уровне 436 Мб.


Проведем аналогичный запуск, но уже с прописанным ключом «–process-per-site».


Как видите, количество процессов снизилось до 10 (исчезли как раз наши четыре дополнительных вкладки), а потребление оперативной памяти сократилось до 309 Мб. Экономия будет еще больше, если у вас открыто множество вкладок одного сайта. Однако этот прием может неблагоприятно сказаться на стабильности. Зависание сайта на одной вкладке приведет к краху всех остальных.

Изоляция страниц. Еще один способ сэкономить лишние мегабайты — отключить изоляцию сайтов в настройках флагов. Это может сократить объем потребления ОЗУ на 10–15 %.


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

Аппаратное ускорение. Скорее всего, этот пункт у вас уже включен, но проверить будет не лишним. Функция позволяет делегировать часть задач GPU, благодаря чему снизится нагрузка на процессор и оперативную память. Изменить этот пункт можно в настройках браузера, вкладка «Система».


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


Навести порядок в расширениях. Если у вас стоят различные расширения, то при нехватке оперативной памяти стоит заняться ими. Это касается и таких полезных вещей, как AdBlock Plus. По различным тестам энтузиастов, плагин способен нагружать ОЗУ на десятки или сотни мегабайт в зависимости от количества рекламы на конкретной странице.

В одном из обзоров десяти лучших блокировщиков рекламы, были выполнены замеры потребления ОЗУ. В среднем такие расширения требуют от 40 до 200 Мб.


Если в браузере включены 5-10 различных плагинов, то суммарно это может задействовать до 1 Гб оперативной памяти, что уже весьма ощутимый объем.

Обходим стороной тяжелые сайты

В 2012 году «жирным» сайтом называли страницу, которая выходила за объем в 1,5 Мб. В 2014 году этот объем уже приближался к 3 Мб. В 2021-м эти числа могут быть намного больше в зависимости от каждого конкретного сайта. Различные скрипты, плохая оптимизация и другие проблемы очень часто приводят к тому, что интернет-ресурс потребляет большой объем ОЗУ.


Если на графике преобладают картинки (images) и JavaScript, то, скорее всего, такой сайт будет сильно нагружать вашу оперативную память.


Нужно больше ОЗУ, милорд

Все вышеописанные советы — не панацея, а лишь частичное улучшение ситуации. Как мы говорили ранее, лучше всего докупить оперативной памяти. Сколько нужно? Для стандартной офисной сборки комфортный минимум это 8 Гб. Если вы еще и геймер, то вам потребуется уже от 16 Гб. Сколько нужно ОЗУ для конкретных игр мы рассказали в другом материале. Учитывайте совместимость вашей материнской платы с планками ОЗУ.

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

Если вы работали с разными браузерами, то, скорее всего, знаете, что Chrome потребляет много ресурсов.

image

Если вы работали с разными браузерами, то, скорее всего, знаете, что Chrome потребляет много ресурсов. В диспетчере задач или в приложении Activity Monitor (в Mac OS) браузер Chrome, как правило, находится на вершине списка.

В этой статье мы рассмотрим, почему Chrome потребляет много оперативной памяти, и как снизить потребление ресурсов.

Всегда ли Google Chrome потребляет много памяти

Несколько лет назад ответ всегда был однозначным, поскольку Chrome имел репутацию потребителя большого объема RAM.

Однако в 2019 году и в сравнении с остальными браузерами Chrome не всегда потребляет много памяти. На самом деле, время от времени, другим браузерам (Mozilla, Edge, Opera и Safari) требуется даже больше ресурсов, чем Chrome. Я проводил небольшое тестирование, загружая в «чистом» браузере страницу на Facebook, видео на YouTube, сайт BBC и ленту в Twitter.

Результаты оказались очень интересными.


Рисунок 1: Потребление оперативной памяти различными браузерами

Рисунок 1: Потребление оперативной памяти различными браузерами

Результаты исследования показали, что Google Chrome находится посередине. Однако проведенный эксперимент не является на 100% достоверным, поскольку существует множество доказательств потребления большого объема памяти в Chrome. Если вы когда-либо проводили собственное тестирование подобного рода, то существует большая вероятность, что в вашем случае Chrome оказывался на первом месте.

Google Chrome – один из самых быстрых браузеров, однако для достижения быстродействия требуется много оперативной памяти.

Почему Chrome потребляет столько памяти

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

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

Таким образом, когда вы открываете Диспетчер задач или Activity Monitor, то видите множество процессов, связанных с Google Chrome (а также Firefox и Opera). Если присмотреться внимательнее, то можно заметить, что каждый процесс использует небольшой объем RAM, но, если сложить все вместе, получается большая нагрузка.


Рисунок 2: Перечень процессов в приложении Activity Monitor

Рисунок 2: Перечень процессов в приложении Activity Monitor

Как Google Chrome управляет оперативной памятью

Современные браузеры (в том числе и Chrome) используют оперативную память подобным образом для улучшения стабильности работы и увеличения быстродействия. Рассмотрим эту архитектуру более подробно.

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

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

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


Рисунок 3: Схема работы браузеров, использующих один и несколько процессов

Рисунок 3: Схема работы браузеров, использующих один и несколько процессов

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

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

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

Представляет ли проблему потребление памяти в Google Chrome

Насколько много оперативной памяти нужно Chrome? Существует ли объем оперативной памяти, при превышении использования которого начнутся проблемы? Ответ: все зависит от аппаратной части.

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

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

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


Рисунок 4: Список процессов, используемых браузером Google Chrome

Рисунок 4: Список процессов, используемых браузером Google Chrome

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

Например, иногда у меня более 50 открытых вкладок, потребляющих более 3.5 ГБ оперативной памяти. На первый взгляд кажется, что объем огромен. Однако у меня 16 ГБ оперативной памяти, и в целом проблемы нет.

Если память, потребляемая Chrome, замедляет всю систему, пришло время действовать.

Как уменьшить объем потребляемой памяти

Существует несколько способов уменьшить объем памяти, потребляемой Chrome. Наиболее полезный инструмент - Chrome Task Manager (диспетчер задач).

Chrome Task Manager, как и Диспетчер задач в Windows, показывает производительность и потребление памяти для каждой вкладки и расширения внутри браузера. Вы можете использовать Chrome Task Manager для выяснения, где потребляется наибольший объем памяти, а затем закрыть соответствующую вкладку или отключить плагин.

В Windows нажмите комбинацию клавиш Shift + Esc для доступа к Диспетчеру задач, в Mac – из меню Window. Далее выберите и завершите соответствующий процесс.


Рисунок 5: Перечень процессов, расширений и вкладок в Google Chrome, отсортированных по объему потребляемой памяти

Рисунок 5: Перечень процессов, расширений и вкладок в Google Chrome, отсортированных по объему потребляемой памяти

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

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

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

В адресной строке введите chrome://flags, поищите по фразе «automatic tab discarding» и включите найденный флаг.

Еще один флаг, хорошо сочетающийся с предыдущим – «Show Saved Copy Button». После выгрузки вкладки появится вопрос, хотите ли вы загрузить страницу из кэша браузера.

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

Управления плагинами и расширениями

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

Например, я использую расширение Grammarly, но мне не нужно проверять орфографию на каждом посещаемом сайте. Кликаем правой кнопкой на расширении, выбираем Manage extensions и меняем «Allow this extension to read and change all your data on websitesthat you visit» либо на On click (по клику), либо на On specific sites (на определенных сайтах).

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

Возможные альтернативы

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

Возможно, следует рассмотреть приложение Brave. Этот браузер не имеет отношения к Google, но поддерживает расширения для Chrome и потребляет намного меньше памяти. К тому же, в Brave есть множество настроек для безопасности и приватности.

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