Оценка влияния на производительность популярных дополнений к Chrome

Опубликованы результаты исследования влияния на производительность браузера тысячи наиболее популярных дополнений к Chrome. Показано, что некоторые дополнения могут достаточно сильно влиять на производительность и создавать большую нагрузку на систему, а также в разы увеличивать потребление памяти. При тестировании оценивалось создание нагрузки на CPU в активном и фоновом режимах, потребление памяти и влияние на скорость отображения открываемых страниц. Результаты представлены в двух выборках, охватывающих 100 и 1000 самых популярных дополнений.

Из 100 самых популярных дополнений наиболее сильно нагружающими CPU признаны дополнения «Evernote Web Clipper» (4 млн пользователей) и «Grammarly» (10 млн пользователей), которые приводят к трате дополнительных 500 мс процессорного времени при открытии каждой страницы (для сравнения открытие тестового сайта без дополнений расходует 40 мс). В общем виде 20 дополнений потребляют больше 100 мс, а 80 меньше 100 мс. Из неожиданных открытый стало относительно большое потребление ресурсов дополнением Ghostery, съедающим 120 мс времени CPU. Менеджер паролей LastPass съедал 241 мс, а Skype — 191 мс. Указанные ресурсы не приводят к остановке отрисовки, но блокируют начало взаимодействия со страницей и влияют на потребление энергии устройством.

0_1592680636.png

При выборке из 1000 дополнений встречаются дополнения, создающие существенно более ощутимую нагрузку:

0_1592682566.png

В тесте на задержку отрисовки страницы дополнения Clever, Grammarly, Cash Back for Shoping, LastPass и AVG замедляли открытие на 150–300 мс, в некоторых случаях внося задержки сопоставимые с отрисовкой самой страницы. В целом ситуация нормальная, так как из 100 дополнений только 6 приводят к задержке более 100 мс.

0_1592681260.png

Результаты выборки из 1000 дополнений:

0_1592682645.png

При оценке нагрузки на CPU, создаваемой при выполнении дополнением фоновых операций, проявило себя дополнение Avira Browser Safety, которое потратило почти 3 секунды времени CPU, в то время как затраты других дополнений не превышали 200 мс. Так как фоновый режим обычно используется для обработки сетевых запросов, выполняемых в процессе открытия страницы, тест был повторён на сайте apple.com, который делает 50 запросов вместо одного. Результаты изменились и в лидеры по созданию нагрузки выбился Ghostery, а Avira Browser Safety сместился на 9 место (разбор показал, что нагрузка снизилась из-за присутствия сайта apple.com в белом списке).

0_1592682126.png

Результаты тестов 1000 дополнений:

0_1592682680.png В тесте на потребление памяти первое место заняло дополнение Avira Browser Safet, потребление памяти которым составило 218 МБ (из-за обработки более 30 тысяч регулярных выражений, хранимых в памяти). На втором и третьем местах оказались Adblock Plus и Adblock, потребляющие чуть меньше 200 МБ. Замыкает 20 худших — uBlock Origin c потреблением менее 100 МБ. 0_1592682495.png

20 худших показателей при тестовании 1000 дополнений:

0_1592682699.png

Так как часто пользователь списывает низкую производительность и возникающие задержки на браузер, а не на установленные дополнений, компания Google начала эксперименты с информированием о проблемных дополнениях. В стабильном выпуске Chrome 83 появилась настройка «chrome://flags/#extension-checkup», включающая вывод информационных сообщений о возможном влиянии дополнений на конфиденциальность и производительность. При включении опции на странице новой вкладки и в менеджере дополнений начинает показываться предупреждение о том, что дополнения могут привести к потреблению значительных ресурсов или получить доступ к персональным данным и активности пользователя.


Отдельно проведено сравнение дополнений для блокировки рекламы и обеспечения конфиденциальности, в контексте экономии ресурсов за счёт блокирования внешних скриптов и рекламных вставок. Все дополнения обеспечили снижение нагрузки как минимум в три раза при обработке тестовой статьи из одного из новостных сайтов. Лидером стало дополнение DuckDuckGo Privacy Essentials, при использовании которого нагрузка при открытии тестовой страницы снизилась с 31 сек до 1.6 сек времени СPU за счёт снижения числа сетевых запросов на 95% и размера загружаемых данных на 80%. Близкий результат показал uBlock Origin.

0_1592683009.png

DuckDuckGo Privacy Essentials и uBlock Origin также оказались лучшими при оценке потребления ресурсов при выполнении фоновых операций.

0_1592683389.png

При тестировании потребления памяти, DuckDuckGo Privacy Essentials и uBlock Origin позволили снизить расход памяти с 536 MB при полной обработке тестовой страницы до ~140 MB.

0_1592683633.png

Аналогичное тестирование проведено для дополнений для web-разработчиков. Нагрузка на CPU:

0_1592683777.png

Нагрузка на CPU при выполнении фоновых операций

0_1592683815.png

Задержки отрисовки:

0_1592683793.png

Потребление памяти:

0_1592683832.png

Источник: http://www.opennet.ru/opennews/art.shtml? num=53198

Полный текст статьи читайте на OpenNet