YouTube зависает браузеры и съедает гигабайты оперативной памяти из-за ошибки интерфейса

3 просмотров
YouTube зависает браузеры и съедает гигабайты оперативной памяти из-за ошибки интерфейса

Пользователи YouTube жалуются на зависания браузера, зависание видео и резкое увеличение потребления оперативной памяти. Судя по сообщениям на Reddit и форумах браузеров, проблема затрагивает Firefox, Brave и Microsoft Edge. В некоторых случаях одна вкладка YouTube могла занимать более 7 ГБ оперативной памяти.

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

Согласно обсуждениям в Bugzilla, разработчики Mozilla обнаружили возможную причину во внешнем коде YouTube. Речь идет о блоке кнопок под видеоплеером — где расположены «Нравится», «Дизлайк», «Поделиться» и другие элементы управления.

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

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

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

Универсального решения пока не существует. Разработчики Mozilla продолжают изучать проблему, а Google и YouTube публично не подтвердили точную причину сбоя. Но тот факт, что ошибка появляется как в браузерах Firefox, так и в Chromium, усиливает теорию о том, что проблема на стороне интерфейса YouTube.