Если вы работали с разными браузерами, то, скорее всего, знаете, что Chrome потребляет много ресурсов. В диспетчере задач или в приложении Activity Monitor (в Mac OS) браузер Chrome, как правило, находится на вершине списка.
В этой статье мы рассмотрим, почему Chrome потребляет много оперативной памяти, и как снизить потребление ресурсов.
Всегда ли Google Chrome потребляет много памяти
Несколько лет назад ответ всегда был однозначным, поскольку Chrome имел репутацию потребителя большого объема RAM.
Однако в 2019 году и в сравнении с остальными браузерами Chrome не всегда потребляет много памяти. На самом деле, время от времени, другим браузерам (Mozilla, Edge, Opera и Safari) требуется даже больше ресурсов, чем Chrome. Я проводил небольшое тестирование, загружая в «чистом» браузере страницу на Facebook, видео на YouTube, сайт BBC и ленту в Twitter.
Результаты оказались очень интересными.
Рисунок 1: Потребление оперативной памяти различными браузерами
Результаты исследования показали, что Google Chrome находится посередине. Однако проведенный эксперимент не является на 100% достоверным, поскольку существует множество доказательств потребления большого объема памяти в Chrome. Если вы когда-либо проводили собственное тестирование подобного рода, то существует большая вероятность, что в вашем случае Chrome оказывался на первом месте.
Google Chrome – один из самых быстрых браузеров, однако для достижения быстродействия требуется много оперативной памяти.
Почему Chrome потребляет столько памяти
Если памяти не хватает, появляется следующее сообщение «Aw snap! Google Chrome исчерпал память при попытке отобразить веб-страницу», и чтобы понять, почему Chrome использует столько RAM, вначале нужно разобраться с архитектурой современных браузеров.
Каждое приложение запускает набор процессов в оперативной памяти вашего компьютера, являющейся высокоскоростным временным хранилищем данных. Процессор получает доступ к информации в оперативной памяти намного быстрее, чем на жестком диске и даже в SSD.
Chrome, Firefox и Opera хранят каждую вкладку, плагин и расширение в отдельной области оперативной памяти для предотвращения записи из одного процесса в другой.
Таким образом, когда вы открываете Диспетчер задач или Activity Monitor, то видите множество процессов, связанных с Google Chrome (а также Firefox и Opera). Если присмотреться внимательнее, то можно заметить, что каждый процесс использует небольшой объем RAM, но, если сложить все вместе, получается большая нагрузка.
Рисунок 2: Перечень процессов в приложении Activity Monitor
Как Google Chrome управляет оперативной памятью
Современные браузеры (в том числе и Chrome) используют оперативную память подобным образом для улучшения стабильности работы и увеличения быстродействия. Рассмотрим эту архитектуру более подробно.
В случае запуска процессов по отдельности, если выйдет из строя один из процессов, браузер будет продолжать работать. Иногда в плагине или расширении будет происходить сбой, и потребуется обновление вкладки. Если бы все вкладки и расширения были в одном процессе, нужно было бы перезапускать весь браузер вместо отдельной вкладки.
С другой стороны, по сравнению с браузерами, использующими один процесс, приходится делать репликацию некоторых процессов для каждой вкладки. Однако разделение на множество процессов сродни песочнице или виртуальной машине и улучшает безопасность.
Например, если в одной из вкладок произойдет атака с использованием JavaScript, других вкладок эта проблема не коснется, как в случае с браузером, работающим на основе одного процесса.
Рисунок 3: Схема работы браузеров, использующих один и несколько процессов
Помимо вкладок, плагинов и расширений, в оперативной памяти находятся некоторые другие процессы, имеющие отношение к браузеру.
В качестве характерного примера рассмотрим предварительный рендеринг, позволяющий загрузить страницу, на которую вы предположительно можете перейти. Например, первые результаты по запросу в Google или страница по ссылке «следующая страница» на сайте. Предварительный рендеринг требует ресурсов, и, соответственно, потребление оперативной памяти также увеличивается. Однако в случае корректной работы скорость браузера также увеличивается.
Если же предварительный рендеринг работает неправильно (или любой другой процесс, направленный на увеличения быстродействия), все может замедлиться из-за потребления слишком большого объема оперативной памяти.
Представляет ли проблему потребление памяти в Google Chrome
Насколько много оперативной памяти нужно Chrome? Существует ли объем оперативной памяти, при превышении использования которого начнутся проблемы? Ответ: все зависит от аппаратной части.
Использование большого объема оперативной памяти не означает, что обязательно возникнут проблемы. Если ваша система не используется всю доступную оперативную память, вы не получаете ощутимой пользы. Ваш компьютер использует RAM для быстрого доступа к информации и ускорения обработки, но, если часть оперативной памяти остается нетронутой, по сути, вы не используете систему на всю мощь.
Эта ситуация схожа со смартфонами, когда остановка процессов и очистка RAM может привести к замедлению системы в долгосрочной перспективе.
С другой стороны, если Chrome использует слишком много памяти, могут возникнуть проблемы, поскольку другими приложениям будет доставаться меньше ресурсов. Chrome даже может начать сохранять важную информацию из браузера, пригодную для быстрого доступа, и поначалу не использовать RAM.
Рисунок 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, отсортированных по объему потребляемой памяти
После открытия Диспетчера задач, смотрим какие вкладки и расширения являются наиболее ресурсозатратными. Иногда одна вкладка может потреблять много памяти из-за ошибок или плохой конфигурации. Время от времени утечки памяти в 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 есть множество настроек для безопасности и приватности.
Источник: