The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Оценка производительности бразуерных дополнений для блокиров..."
Отправлено opennews, 19-Фев-19 12:31 
Рассмотрев критику (https://www.opennet.ru/opennews/art.shtml?num=50009) изменений в третьей редакции манифеста Chrome, нарушающих работу (https://www.opennet.ru/opennews/art.shtml?num=50013) многих дополнений для блокирования нежелательного контента и обеспечения безопасности, разработчики из компании Google подытожили (https://groups.google.com/a/chromium.org/forum/#!topic/chrom...) свою позицию по данному вопросу. Утверждается, что в реализации нового API declarativeNetRequest будут учтены пожелания и замечания авторов дополнений, в том числе будет расширен лимит на число правил блокировки. Тем не менее, как и раньше разработчики Chrome намерены ограничить старый API webRequest режимом только для чтения (неблокирующим режимом), что позволит только отслеживать запросы, но не даст изменять их.


Отсутствие блокирующего режима в  API webRequest  потребует портирования большинства дополнений  для блокирования рекламы на новый API declarativeNetRequest, который самостоятельно применяет предоставленные дополнением правила фильтрации (предлагается типовой движок применения фильтров). В качестве одного из основных аргументов против API webRequest представители Google называют замедление отображения контента, так как данный API работает в блокирующем режиме и перед выводом страницы браузер ожидает полного завершения обработки данных дополнением.


Авторы сервиса WhoTracks.Me  и разработчики блокировщика рекламы Ghostery решили проверить насколько данные заявления соответствуют действительности и провели (https://whotracks.me/blog/adblockers_performance_study.html)  тестирование производительности фильтрации контента дополнениями uBlock Origin (https://github.com/gorhill/uBlock), Adblock Plus (https://github.com/adblockplus/adblockpluscore), Brave (https://github.com/brave/ad-block), DuckDuckGo (https://github.com/duckduckgo/abp-filter-parser) и Cliqz/Ghostery (https://github.com/cliqz-oss/adblocker). Для проведения теста была организована симуляция обработки большого числа запросов в рассматриваемых дополнениях, для чего с использованием Node.js были подготовлены (https://github.com/cliqz-oss/adblocker/tree/master/bench/) тесты, прогоняющие через движки блокировщиков 250 тысяч запросов (случайные страницы 500 самых популярных сайтов), 19% из которых приводили к блокировке. В блокировщиках использовался набор правил Easylist (https://github.com/cliqz-oss/adblocker/blob/master/bench/com...), включающий 38978 записей.

Измерение показало, что все рассмотренные блокировщики работают очень эффективно - задержки на применение фильтров, блокирующие вывод на этапе использования API webRequest, пренебрежимо малы на общем фоне. В среднем применение блокировщика замедляет выполнение запроса лишь на доли миллисекунд, что никак не может рассматриваться как повод для отключения поддержки блокирующего режима работы API webRequest.

В общем зачёте наибольшие задержки были зафиксированы для дополнения DuckDuckGo, которое замедляло каждый запрос в среднем на 8 мс. Для  Ghostery, uBlock Origin, Adblock Plus и Brave среднем  составили     0.007мс, 0.017мс, 0.019мс и 0.041мс соответственно.
Разница обработки запросов подлежащих и не подлежащих блокировке оказалась минимальной: Ghostery (0.007/0.006 мс), uBlock Origin (0.016/0.018 мс), Adblock Plus (0.014/0.020 мс), Brave (0.062/ 0.038 мс) и DuckDuckGo (8.31/6.78 мс).

Дополнительно была измерена производительность кода для кэширования (сериализации и десериализации) внутреннего представления данных для ускорения загрузки базы правил. Данные операции приводят лишь к задержкам на этапе запуска и не влияют на производительность работы дополнения. Размер кэша c сериализированной базой правил для всех дополнений составляет примерно 2 Мб.


При сравнении потребления памяти наибольшую эффективность продемонстрировали дополнения Ghostery и uBlock Origin, требующие для работы 2-3 Мб ОЗУ. Потребление памяти Adblock Plus и DuckDuckGo составило приблизительно 15-16 Мб.

При измерении времени на разбор списка правил блокировки из общей массы выделился блокировщик из браузера  Brave, которым потратил (https://github.com/brave/ad-block/issues/158) на разбор в 20 раз больше времени, чем остальные блокировщики. Наиболее быстрыми в этом тесте оказались  Adblock Plus и uBlock Origin.


URL: https://whotracks.me/blog/adblockers_performance_study.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=50169

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру