Веб-браузеры имеют репутацию пожирателей оперативной памяти, но почему?

Скриншот репозитория React Github от Facebook.

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

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

Веб-приложения сегодня намного сложнее

Технологии, лежащие в основе Интернета, значительно изменились.

Скриншот репозитория React Github от Facebook.

Источник: Unsplash

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

Транспиляторы, инструменты, которые компилируют код с одного языка в исходный код для другого языка, помогли устранить эту проблему, позволив разработчикам писать код на языке более высокого уровня или для нового стандарта и преобразовывать его во что-то, что понимают старые браузеры. Двумя наиболее популярными транспиляторами являются Basil и Typescript, оба из которых создают обратно совместимый Javascript.

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

Эта стандартизация шла рука об руку с разработкой крупных фреймворков для создания сложных интерфейсов, таких как Vue, Angular.js и React. Это также облегчило создание адаптивного дизайна для экранов различных размеров. Эти фреймворки также представили функции, которые помогли создавать очень динамичные веб-страницы без остановки работы вашего браузера.

Современные веб-сайты имеют огромные базы кода.

Все это позволило нам создавать еще более сложные приложения для Интернета. Facebook.com (включая серверную часть) содержит более 50 миллионов строк кода, что более чем в 100 раз больше, чем в космическом шаттле, и, вероятно, значительно больше, чем в браузере, в котором он работает.

Очевидно, что весь этот код не запускается одновременно, но он служит иллюстрацией того, что современные веб-сайты почти сравнимы с операционными системами сами по себе — с управлением мультимедиа, файловыми браузерами, потоками видео и изображений, сложными асинхронными серверными модулями и гораздо более. Это стало возможным благодаря некоторым из вышеперечисленных технологий. И неудивительно, что некоторые из них были разработаны Facebook, теперь Meta! По крайней мере, само существование ChromeOS является тому подтверждением.

Веб-браузеры жертвуют производительностью ради стабильности, скорости и безопасности.

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

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

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

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

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

В сети полно богатого контента

СМИ, реклама и контент управляют ИнтернетомСкриншот youtube-канала разработчиков XDA

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

Кроме того, в вашем браузере почти незаметно работает значительный объем контента — все, от аналитики пользовательского интерфейса и сценариев отслеживания до зацепок в социальных сетях и многого другого. Все это контент, который необходимо загрузить и обработать вашим браузером. Это особенно верно в отношении платформ социальных сетей, таких как X, Facebook или Reddit, где любая веб-страница полна богатого контента.

Высокое использование оперативной памяти — это неплохо.

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

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

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

Не беспокойтесь об оперативной памяти: просмотр веб-страниц стал лучше, чем когда-либо.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *