Влияние AdBlock Plus на потребление памяти Firefox

Nicholas Nethercote, один их активных разработчиков Valgrind и автор ряда инициатив по сокращению потребления памяти в Firefox, привёл в своём блоге заслуживающий внимания пример того, насколько существенно дополнения могут влиять на потребление памяти Firefox. Объектом критики стало популярное дополнение AdBlock Plus, которое съедает значительный объём памяти в некоторых ситуациях. В частности, приведён пример страницы, при открытии которой потребление памяти в Firefox с дополнением AdBlock Plus возрастает до почти 2Гб (на 32-разрядных системах и компьютерах с небольшим размером ОЗУ открытие станицы приводит к краху браузера, крах наблюдается и при использовании Chrome с AdBlock), в то время как без дополнения Firefox расходует 370Мб ОЗУ. В обычных условиях AdBlock Plus требует около 60Мб ОЗУ для хранения базы правил блокировки, плюс около 4Мб на каждую страницу и iframe. Приведённая в примере проблемная страница содержит более 400 iframe, что и послужило причиной переедания памяти. При этом проблема довольно заметно проявляется и на обычных сайтах, активно использующих iframe для инкапсуляции рекламных блоков. Например, открытие сайта TechCrunch с AdBlock Plus приводит к потреблению 417Мб ОЗУ, а без дополнения браузер съедает всего 194Мб.

Владимир Палант, автор Adblock Plus, отреагировал на заявления о значительном влиянии дополнения на потребление памяти браузера. По его мнению проблема кроется в поведении Firefox, который при регистрации одной таблицы стилей, используемой для скрытия элементов, создаёт новые копии этой таблицы стилей для каждой страницы вместо совместного использования для всех страниц. Сообщение о данной особенности в марте было размещено в трекере ошибок Firefox.

©  OpenNet