Блокировка рекламы и экономия батареи
Одним из самых важных недостатков современных мобильных устройств является небольшая продолжительность работы от батареи. Так что совершенно неудивительно, что многие пользователи смартфонов проявляют к этому повышенное внимание. Если вы пользуетесь Adguard на смартфоне и хоть раз заглядывали в статистику использования батареи, то наверняка обращали внимание, что Adguard часто оказывается в списке программ, потребляющих много заряда. Но так ли это на самом деле? Давайте разберемся подробнее.
Блокировка рекламы и экономия
Логично предположить, что блокировка рекламы должна помогать вам экономить на потреблении батареи.
Вот небольшой список того, на чем вы экономите:
- Загрузка рекламных скриптов.
- Отрисовка рекламных объявлений браузером.
- Время, которое уходит на работу рекламных и трекинговых скриптов.
В теории все гладко, но почему же тогда в статистике самого Android, Adguard часто оказывается в верхней половине списка потребителей?
Можно ли доверять статистике Android?
Как показывает практика, доверять ей можно не всегда. Давайте для начала попробуем понять, из каких основных параметров складывается потребление батареи. На самом деле их всего четыре: экран, Wi-Fi данные, мобильные данные и потребление CPU. При этом важно, что самым "дорогим" из перечисленного является не экран, а мобильные данные.
Если вы используете Adguard или какое-либо другое похожее фильтрующее приложение, то весь ваш трафик проходит через него. Вот тут и кроется корень всех проблем. Android записывает все потребление трафика на счет Adguard. С другой стороны, на счет приложений, которые реально используют этот трафик, не записывается ничего. Получается поразительная ситуация, чужое потребление батареи записывается на счет Adguard. Понять, сколько на самом деле батареи использует Adguard, все-таки можно. Правда придется проделать некоторые математические вычисления.
Как мы тестировали
Для проведения тестирования нами была разработана специальная утилита WebBatteryTester, код которой опубликован на github. Эта утилита открывает по очереди сайты из настраиваемого списка. По окончании теста она выводит результат: потребление трафика, CPU, а также статистику по отправленным и заблокированным запросам. Зная потребление CPU и трафика, не сложно вычислить реальное потребление батареи.
В качестве тестовых сайтов мы использовали 10 очень популярных новостных сайтов. Утилита загружала каждый из этих сайтов 5 раз. Я не могу сказать, что визуально они перегружены рекламой, так что результаты теста для меня были неожиданны.
Для тестирования использовался телефон Google Pixel c Android версии 7.1.1.
Также мы использовали Adguard последней стабильной версии 2.8.76.
Что мы тестировали
Тест без блокировщика
Для начала мы провели базовый тест вообще без использования какой-бы то ни было блокировки рекламы. Результаты других тестов мы будем приводить в сравнении с этим базовым тестом.
Adguard в "быстрой" конфигурации
Следующие настройки изменены после установки Adguard:
- Режим фильтрации: "Быстрый"
- Включена фильтрация HTTPS запросов
- Дополнительно включена опция "Фильтрация DNS запросов"
Adguard в "качественной" конфигурации
Следующие настройки изменены после установки Adguard:
- Режим фильтрации: "Качественный"
- Включена фильтрация HTTPS запросов
Adguard в режиме блокировщика DNS запросов
Об этом режиме работы Adguard мы уже рассказывали ранее. Напомню кратко в чем суть дела. В этом режиме Adguard ограничен блокировкой на уровне хостов. Это очень схоже с тем, что делает Adaway и схожие с ней программы.
У этого режима есть плюсы:
- На блокировку рекламы уходит меньше ресурсов CPU.
- Adguard не фильтрует трафик приложений, а это значит, что он не попадает в статистику потребления батареи Android.
Правда есть и весомые минусы. Такой подход к блокировке рекламы "очень грубый". В целом, визуально качество блокировки будет заметно хуже:
- Нет возможности применить косметические фильтры и скрыть ту рекламу, которую нельзя заблокировать (например, реклама в поиске Google).
- Нет возможности заблокировать рекламу, которая грузится с не чисто рекламных хостов.
Результаты тестирования
Все результаты мы собрали в несколько графиков: экономия трафика, потребление CPU, количество заблокированных запросов.
Потребление CPU
Как видно из графика, при наличии блокировщика рекламы, потребление CPU падает более чем в два раза! Причем это справедливо для всех конфигураций Adguard. Ожидаемо, в режиме DNS-блокировщика Adguard потребляет несколько меньше, чем в остальных двух.
Загружено данных
Теперь давайте рассмотрим самое важное: количество загруженных данных. И опять мы видим огромную экономию, больше 50% экономии при использовании любого режима фильтрации.
Обратите внимание, что именно загруженные данные вносят основной вклад в потребление батареи.
Блокировка рекламы и трекинга
Судя по результатам предыдущих тестов, DNS-фильтрация показывает чуть лучший результат. Пришла пора показать ее минусы.
Обратите внимание на исходные данные по тесту "Без блокировщика". 85% запросов были отправлены к сторонним хостам, подавляющее большинство которых не имеют прямого отношения к сайту. И это на мобильных версиях сайтов, которые должны быть максимально легковесными!
Итоговый результат показывает заметное отставание DNS-фильтрации в количестве заблокированных запросов. Это, конечно, ожидаемый результат, ведь блокировка на уровне хостов - гораздо "грубее".
Вывод
Использование блокировщика рекламы не уменьшает ресурс вашей батареи. Наоборот, любой блокировщик заметно помогает вам его экономить.
Более того, вы экономите не только заряд батареи, но и деньги, ведь реклама и трекинг составляют больше половины от всех загружаемых данных.
Если у вас есть вопросы по этой статье, или вы хотите, чтобы мы дополнили её новыми данными, пожалуйста, пишите нам в комментариях.