Почему может лагать интерфейс сайтов после пробуждения вкладок

Websiteint

Не секрет, что современные браузеры отличаются весьма внушительным аппетитом к оперативной памяти. Даже при работе с одной-двумя вкладками они могут потреблять 500 МБ ОЗУ и больше. А если открыть пару десятков страниц, нагрузка становится еще заметнее. Чтобы снизить расход памяти и уменьшить нагрузку на процессор, разработчики браузеров внедрили функцию заморозки вкладок.

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

Четыре стадии сна

Неиспользуемые в браузере вкладки засыпают не сразу, а постепенно. Существуют четыре стадии сна и чем он глубже, тем более проблемным будет пробуждении вкладки.

  • Первая стадия — замедление внутренних таймеров. Через 10–30 секунд после ухода с вкладки браузер начинает увеличивать интервалы обновления таймеров страницы. Например, если какой-либо скрипт обновляется пять раз в секунду, то после частота его работы может снизиться до одного обновления в секунду или реже.
  • Вторая стадия — глубокий троттлинг. Если вкладка не используется более пяти минут, браузер переводит ее на «голодный паек», выделяя ей ресурсы процессора по расписанию и небольшими порциями. Более длительные периоды сна сменяются короткими периодами бодрствования, отведенными на обновление внутренних процессов.
  • Третья стадия — заморозка. Страница приостанавливает работу — как игра после нажатия кнопки паузы, но при этом все еще остается в ОЗУ. Примечательно, чем наглее ведет себя страница, чем скорее применит к ней меры браузер. И напротив, если она не проявляет излишней активности, до третьей стадии не доходит.
  • Четвертая стадия — выгрузка из памяти. Наступает только тогда, когда браузер обнаруживает реальную нехватку памяти. Он полностью выгружает страницу из ОЗУ, оставляя только ее пустую оболочку.

Что делать с фризами при пробуждении

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

Вот несколько лайфхаков.

  • Если на сайте есть звук, не отключайте его. Фоновые страницы с воспроизводимым медиа контентом не уходят в сон глубже первой стадии.
  • Если вы пользуетесь Chrome, зайдите на страницу chrome://discards, найдите на ней нужную вкладку и отключите для нее опцию Auto Discardable.

Auto Discardable

Она предотвращает переход в четвертую стадию, чтобы запретить Chrome усыплять сайты вообще, добавьте их URL на странице chrome://settings/performance в «белый» список.

Белый список

  • В том же разделе «Производительность» отключите экономию памяти.

Экономия памяти

Если у вас Firefox, можете переключить на странице about:config параметр dom.timeout.enable_background_budget_throttling в режим false — неактивные вкладки будут получать столько же процессорного времени для своих внутренних часов, сколько и активные.

Timeout

Разумеется, если только у вас на ПК имеется достаточно ОЗУ.

Оцените Статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Разное

Добавить комментарий

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