Сообщения о том, что YouTube вызывает зависание браузеров и потребляет огромное количество оперативной памяти (RAM), начали распространяться по Reddit и форумам браузеров на прошлой неделе. Разработчики теперь указывают на ошибку в коде интерфейса платформы, которая может зацикливать браузеры в бесконечном пересчете компоновки. Выясняется, что в элементах управления видео на платформе скрыта вышедшая из-под контроля ошибка интерфейса. Пользователи различных браузеров, включая Firefox, Brave и Microsoft Edge, сообщали о заикании видео, неотзывчивости вкладок и замедлении работы систем до полной остановки во время просмотра YouTube. Некоторые пользователи отмечали, что отдельные вкладки YouTube потребляли более 7 ГБ оперативной памяти. Многие первоначальные сообщения винили продолжающуюся войну YouTube против блокировщиков рекламы или недавние обновления браузеров, поскольку проблемы, казалось, впервые были замечены после обновления Firefox. Однако аналогичные сообщения от пользователей Brave и Edge усилили внимание к YouTube. По результатам расследований, отчеты, появляющиеся в системе отслеживания ошибок с открытым исходным кодом Mozilla Bugzilla, предполагают, что основной виновник — логика фронтенд-интерфейса YouTube. Разработчики, расследующие проблему, по-видимому, сузили ее до гибкого контейнера меню, расположенного непосредственно под видеоплеером — секции, содержащей такие элементы управления, как «Нравится», «Не нравится», «Поделиться» и другие кнопки взаимодействия. Согласно комментариям, связанным с расследованием, интерфейс многократно проверяет, помещаются ли все кнопки в доступное горизонтальное пространство. Если элементы управления выходят за пределы, система скрывает одну из кнопок, чтобы освободить место. Однако скрытие кнопки изменяет ширину контейнера, немедленно создавая новую проблему. Как только кнопка исчезает, доступная ширина кажется достаточной, и интерфейс считает, что место снова есть, заставляя скрытую кнопку появиться снова. Затем кнопки снова выходят за пределы, что вынуждает интерфейс снова скрыть кнопку. Этот цикл непрерывно повторяется с чрезвычайно высокой скоростью. Хотя само визуальное поведение может показаться незначительным, последствия внутри браузера могут быть гораздо более серьезными. Современные браузеры постоянно пересчитывают компоновку страниц всякий раз, когда элементы интерфейса меняют размер или положение. Если веб-страница многократно вызывает эти пересчеты тысячи раз в секунду, браузер может застрять в том, что разработчики часто называют «layout thrashing» (перегрузка компоновки) или «reflow loop» (цикл перерасчета). Это заставляет браузер непрерывно пересчитывать геометрию компоновки, перерисовывать элементы интерфейса и обновлять состояния рендеринга, быстро потребляя ресурсы ЦП и память. Один из пользователей поделился скриншотами на Reddit, показывающими загрузку ядер ЦП на максимальном уровне, в то время как вкладки YouTube становились почти неотзывчивыми. Другие сообщали о замедлениях работы браузера, настолько сильных, что они временно замораживали целые системы. Сообщается, что разработчики Mozilla все еще расследуют проблему, хотя общепризнанного исправления пока нет. Тот факт, что и браузеры на основе Firefox, и браузеры на основе Chromium испытывают схожие проблемы, еще больше подтверждает подозрение, что проблема может исходить в первую очередь от YouTube. На данный момент точная первопричина остается неофициальной; ни Google, ни YouTube публично не подтвердили источник проблемы.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Etiido Uko




