«Браузер съел всю память» — жалоба настолько привычная, что её давно перестали проверять. А сколько это в мегабайтах? Одна вкладка — это много или мало? И правда ли, что тяжёлые сайты тяжелы во всём?
Взяли и посчитали. Шесть сайтов, которые открывают каждый день, замер расхода памяти после каждой открытой вкладки. Результат оказался прозаичнее страшилок и интереснее, чем я ожидал: пустой браузер берёт двести мегабайт ещё до того, как вы что-то открыли, а самая тяжёлая по трафику страница из подборки оказалась далеко не самой голодной по памяти.
Как мерили и почему это не сумма RSS
Метод стоит описать, потому что именно здесь чаще всего врут цифры.
Chromium работает не одним процессом, а десятком: отдельно движок, отдельно каждая вкладка, отдельно графика и сеть. Наивный способ — сложить память всех процессов из диспетчера задач. Так делать нельзя: библиотеки и служебные страницы памяти общие, и при сложении они посчитаются столько раз, сколько процессов их использует. Итог получается завышенным в разы, и именно отсюда растут пугающие скриншоты в интернете.
Мы считали иначе — по величине, которая для этого и придумана. Общая память делится между теми процессами, которые её используют, и сумма таких долей даёт честную цену. Технически это Pss из системной статистики Linux, читается прямо из ядра, без посредников.
Браузер — Chromium в фоновом режиме, окно 1366 на 768, без расширений и без вошедших аккаунтов. Замер после каждой вкладки, плюс отдельный прогон, где каждый сайт открывался в одиночку в свежем браузере.
Начинали мы с одиннадцати сайтов, а в таблицы попало шесть. Остальные при автоматическом открытии отдали не страницу, а заглушку: у одного магазина вместо каталога пришло 344 символа текста и одна картинка, второй ответил кодом 403, третий — 429, то есть прямо сказал «слишком часто, притормози», а Госуслуги показали страницу ошибки. ВКонтакте отдал экран входа. Считать их «лёгкими» было бы обманом: мы измерили бы вес заглушки, а не сайта. Поэтому их из результатов убрали.
Пустой браузер берёт 199 мегабайт ни за что
Первая цифра — база, от которой считается всё остальное.
Свежезапущенный Chromium с одной пустой вкладкой занимает около 199 мегабайт и держит шесть процессов. Это цена самого движка: ни одного сайта ещё не открыто, ничего не загружено.
Дальше эта сумма не растворяется — она остаётся, и все вкладки прибавляются к ней. Так что разговор «сколько памяти нужно браузеру» правильнее начинать не с нуля, а с двухсот мегабайт.
Шесть вкладок — 1,8 гигабайта
Открываем сайты один за другим, не закрывая предыдущие. Вот как растёт расход.
| Открыто вкладок | Последний добавленный | Всего памяти | Сверх пустого браузера |
|---|---|---|---|
| — | пустой браузер | 199 МБ | — |
| 1 | ya.ru | 359 МБ | 160 МБ |
| 2 | Кинопоиск | 558 МБ | 359 МБ |
| 3 | Авто.ру | 634 МБ | 436 МБ |
| 4 | hh.ru | 892 МБ | 693 МБ |
| 5 | Mail.ru | 1331 МБ | 1133 МБ |
| 6 | Rutube | 1812 МБ | 1613 МБ |
Шесть вкладок с обычными сайтами — почти два гигабайта. Средняя вкладка в нашем наборе обошлась в 269 мегабайт, но, как видно по прибавкам, разброс огромный: от 77 мегабайт до почти полугигабайта за одну.
Для машины с восемью гигабайтами это уже заметная доля, а ведь кроме браузера работают система, мессенджеры и всё остальное. Отсюда и растёт ощущение, что ноутбук начинает думать над каждым кликом.
Сколько стоит каждый сайт по отдельности
Второй прогон: каждый сайт в свежем браузере, без соседей. Цифра показывает цену именно этой страницы.
| Сайт | Стоит памяти |
|---|---|
| Авто.ру | 79 МБ |
| ya.ru | 158 МБ |
| Кинопоиск | 248 МБ |
| hh.ru | 361 МБ |
| Rutube | 426 МБ |
| Mail.ru | 504 МБ |
Разница между самым скромным и самым голодным — больше шести раз. Причём никакой связи с тем, насколько сайт выглядит сложным, тут нет: страница объявлений о машинах с сотнями картинок оказалась легче поисковой строки.
Берём привычные утверждения о технике и меряем сами, с описанием методики. Подпишитесь на «Техпросто» в MAX, Telegram или Дзене — эксперименты будут приходить сами.
Главное: вес страницы и аппетит к памяти — вещи разные
А теперь самое интересное, и оно вылезло только потому, что шесть дней назад мы теми же руками мерили сколько мегабайт трафика съедает заход на сайт. Наборы сайтов пересеклись — можно сравнить два показателя.
Rutube тяжёл в обоих смыслах: 13,5 мегабайта трафика и 426 мегабайт памяти. Логично.
А Mail.ru всё ломает. По трафику это одна из самых скромных страниц в подборке — два мегабайта, в шесть раз меньше Rutube. По памяти — абсолютный лидер, полгигабайта. То есть страница, которая почти ничего не скачивает, требует памяти больше всех.
Объяснение простое, если задуматься, о чём вообще каждая цифра. Трафик — это сколько байтов приехало по сети. Память — это сколько работы браузер потом делает и сколько всего держит в голове одновременно: разобранную структуру страницы, запущенный код, живые блоки, которые сами обновляются. Портал, набитый десятками самостоятельных виджетов, скачивает немного, а вот работает много и непрерывно.
Практический вывод из этого неочевидный. Если у вас считан трафик — смотрите на одни сайты. Если не хватает памяти — совсем на другие. Это два разных списка, и по внешнему виду страницы ни один из них не угадать.
Вкладки почти не экономят друг на друге
Ещё одна проверка, которую стоило сделать: может, вкладки дешевеют, когда их много? Браузер-то один.
Складываем индивидуальные цены всех шести сайтов — получается 1774 мегабайта. Реальный замер шести вкладок вместе дал 1613 мегабайт сверх пустого браузера. Экономия есть, но всего около девяти процентов.
То есть надежда, что двадцатая вкладка почти бесплатна, не оправдывается: каждая платит почти полную цену. Общий у них только движок — те самые двести мегабайт, которые вы уже заплатили при запуске.
Сколько памяти хватит по этим цифрам
Прикидка получается простая, если взять нашу среднюю вкладку в 269 мегабайт.
Восемь гигабайт: система с фоновыми службами обычно занимает пару гигабайт, ещё пара уходит на мессенджеры и рабочие программы. На браузер остаётся четыре с небольшим — то есть десяток вкладок, и это при условии, что среди них нет двух-трёх голодных. Знакомое чувство, когда ноутбук начинает подтормаживать к вечеру пятницы, растёт как раз отсюда: вкладки за день накопились, а закрывать их никто не собирался.
Шестнадцать гигабайт: запас реальный. Двадцать-тридцать вкладок машина переживёт без драмы, и упрётесь вы скорее в собственную способность найти нужную среди них.
Мы мерили браузер в фоновом режиме и открывали вкладки подряд, ни на что не переключаясь. В обычном Chrome есть режим экономии памяти: вкладки, которыми вы давно не пользовались, деактивируются, а при возврате загружаются заново — Google описывает это прямым текстом. Сработал ли этот механизм в нашем прогоне, мы не проверяли: общий расход у нас только рос. Так что на живой машине с долго открытым браузером картина может оказаться в вашу пользу.
Что из этого следует на практике
Никакой магии: если памяти не хватает, вкладки надо закрывать, и это работает — закрытая вкладка отдаёт свою память назад.
Полезнее другое — знать, кого закрывать. Двадцать лёгких вкладок могут стоить меньше двух тяжёлых, поэтому закрывать «всё подряд» неэффективно. Посмотрите, кто именно съедает память, встроенным диспетчером браузера: сочетание Shift + Esc открывает список вкладок и расширений с их расходом, и в первой же строке обычно обнаруживается один конкретный виновник. Про этот и другие спрятанные инструменты мы собирали отдельную подборку.
И честная оговорка к нашим цифрам. Мерили один прогон каждой конфигурации, в фоновом браузере без расширений и без вошедших аккаунтов. У вас, скорее всего, выйдет больше — и по двум разным причинам.
С расширениями всё устроено тоньше, чем принято думать. Их фоновая часть в современных браузерах не висит в памяти постоянно: она выгружается после нескольких десятков секунд простоя и оживает, когда появляется работа. Но у расширений есть и вторая половина — код, который впрыскивается в каждую открытую вами страницу. Вот он и добавляет вес каждой вкладке, а не какой-то один вечно работающий процесс.
Со входом в аккаунт мы не экспериментировали, поэтому здесь честнее сказать «ожидаем», а не «измерили»: персональная лента обычно богаче гостевой страницы, и памяти под неё, по логике, нужно больше. Проверять это отдельно мы не стали.
Числа стоит читать как порядок величины, а не как паспортные данные.
Забавно, что вся эта арифметика упирается в одну подмену, которую мы делаем не задумываясь. Открытая вкладка кажется чем-то невесомым, вроде закладки: страница же уже загрузилась, чего ей стоить. А на самом деле каждая открытая вкладка — это работающая программа, которую вы запустили и оставили работать. Двадцать вкладок — двадцать программ. Удивляться, что их двадцать штук требуют памяти, примерно так же логично, как удивляться очереди в магазине, куда вы сами позвали двадцать человек.
Если статья помогла — поделитесь с теми, кому может пригодиться. И заходите в наш канал в MAX, Telegram и Дзен — там анонсы новых материалов.