Больше, чем мем: Google использует TheVerge.com для тестирования устройств Nexus

Похоже, что Google загружает домашнюю страницу The Verge при выполнении тестирования автоматизации рабочей нагрузки на всех своих устройствах Nexus.

Покопаться в AOSP — отличный способ сделать новые открытия об Android, и на этот раз мы наткнулись на кое-что довольно забавное. На некоторое время, пользователи сообщили что технологический веб-сайт TheVerge.com обеспечивало низкую производительность на мобильных устройствах.

К их чести, по моему опыту, производительность их веб-сайта со временем улучшилась. Кроме того, это не значит, что на других сайтах (в том числе и на нашем) нет проблем, над которыми мы могли бы работать, но, тем не менее, мне показалось весьма забавным, что в официального набора тестов рабочей нагрузки, Google решила использовать The Verge в своем тестировании.


Автоматизация рабочих нагрузок Android

Автоматизация рабочих нагрузок (WA) — это фреймворк, разработанный РУКА для сбора данных о производительности на устройствах Android путем выполнения набора повторяющихся рабочих нагрузок. Google оценивает производительность своих устройств, выполняя множество тестов рабочих нагрузок и собирая сводную информацию энергопотребление, которое они затем импортируют в электронную таблицу, чтобы увидеть, как их оптимизация улучшила производительность по сравнению с время. Компания сама выбирает, какие приложения включить в свой набор тестов, но в целом они ограничиваются большинством популярных приложений Google. Вот суть того, как это работает, но мы покажем доказательства из исходного кода и опишем тест. пакеты более подробно, чтобы вы могли получить более полное представление о том, какие автоматические тесты проводит Google для измерения. производительность.

В AOSP есть каталог, посвященный к тестам автоматизации рабочих нагрузок. Приложения, используемые для тестирования, определены в defs.shи обычно подпадают под одну из двух категорий: по умолчанию, предустановленное приложение Google или сторонний веб-браузер. Одно тестовое приложение выделяется среди остальных, и оно com.BrueComputing.SunTemple/com.epicgames.ue4.GameActivity который, как я полагаю, относится к Обозреватель BrueBench ST бенчмарк, основанный на Unreal Engine 4.

# default activities. Can dynamically generate with -g.
gmailActivity='com.google.android.gm/com.google.android.gm.ConversationListActivityGmail'
clockActivity='com.google.android.deskclock/com.android.deskclock.DeskClock'
hangoutsActivity='com.google.android.talk/com.google.android.talk.SigningInActivity'
chromeActivity='com.android.chrome/_not_used'
contactsActivity='com.google.android.contacts/com.android.contacts.activities.PeopleActivity'
youtubeActivity='com.google.android.youtube/com.google.android.apps.youtube.app.WatchWhileActivity'
cameraActivity='com.google.android.GoogleCamera/com.android.camera.CameraActivity'
playActivity='com.android.vending/com.google.android.finsky.activities.MainActivity'
feedlyActivity='com.devhd.feedly/com.devhd.feedly.Main'
photosActivity='com.google.android.apps.photos/com.google.android.apps.photos.home.HomeActivity'
mapsActivity='com.google.android.apps.maps/com.google.android.maps.MapsActivity'
calendarActivity='com.google.android.calendar/com.android.calendar.AllInOneActivity'
earthActivity='com.google.earth/com.google.earth.EarthActivity'
calculatorActivity='com.google.android.calculator/com.android.calculator2.Calculator'
calculatorLActivity='com.android.calculator2/com.android.calculator2.Calculator'
sheetsActivity='com.google.android.apps.docs.editors.sheets/com.google.android.apps.docs.app.NewMainProxyActivity'
docsActivity='com.google.android.apps.docs.editors.docs/com.google.android.apps.docs.app.NewMainProxyActivity'
operaActivity='com.opera.mini.native/com.opera.mini.android.Browser'
firefoxActivity='org.mozilla.firefox/org.mozilla.firefox.App'
suntempleActivity='com.BrueComputing.SunTemple/com.epicgames.ue4.GameActivity'
homeActivity='com.google.android.googlequicksearchbox/com.google.android.launcher.GEL'

Эти действия запускаются через командную строку ADB со следующей командой: Систраце варианты измерения производительности приложения:

dflttracecategories="gfx input view am rs power sched freq idle load memreclaim"

В частности, приложение Chrome запускается с флагом загрузки The Verge:

Что касается того, почему тест, похоже, отличается для Волантис (Нексус 9), Я не совсем уверен. В любом случае, какие тесты на самом деле проходит эта активность Chrome с The-Verge, мы можем определить, посмотрев исходный код тестов автоматизации рабочей нагрузки.


Тестовые наборы

Во-первых, есть systemapps.sh тест, который, по утверждению Google, работает следующим образом:

# Script to start a set of apps in order and then in each iteration
# switch the focus to each one. For each iteration, the time to start
# the app is reported as measured using atrace events and via am ThisTime.
# The output also reports if applications are restarted (eg, killed by
# LMK since previous iteration) or if there were any direct reclaim
# events.

Далее, есть недавнийfling.sh тест, который работает следующим образом:

# Script to start a set of apps, switch to recents and fling it back and forth.
# For each iteration, Total frames and janky frames are reported.

И тогда есть chromefling.sh, который довольно просто проверяет производительность Chrome:

# Script to start 3 chrome tabs, fling each of them, repeat
# For each iteration, Total frames and janky frames are reported.

Еще один забавный тест в пакете Workload Automation, хотя и не связанный с The Verge, — это youtube.sh тест производительности, который измеряет зависание пользовательского интерфейса

#
# Script to play a john oliver youtube video N times.
# For each iteration, Total frames and janky frames are reported.
#
# Options are described below.
#
iterations=10
app=youtube
searchText="last week tonight with john oliver: online harassment"
vidMinutes=15

Наконец, каждый из этих тестов используется для измерения реального энергопотребления путем циклического прохождения тестов в течение определенного периода времени, как определено в разделе pwrtest.sh:

# Script to gather perf and perf/watt data for several workloads
#
# Setup:
#
# - device connected to monsoon with USB passthrough enabled
# - network enabled (baseline will be measured and subtracted
# from results) (network needed for chrome, youtube tests)
# - the device is rebooted after each test (can be inhibited
# with "-r 0")
#
# Default behavior is to run each of the known workloads for
# 30 minutes gathering both performance and power data.

Затем Google может собрать эти данные, используя pwrsummary.sh и импортируйте их в электронную таблицу:

# print summary of output generated by pwrtest.sh
#
# default results directories are -[-experiment]. By default
# match any device and the year 201*.
#
# Examples:
#
# - show output for all bullhead tests in july 2015:
# ./pwrsummary.sh -r "bh-201507*"
#
# - generate CSV file for import into spreadsheet:
# ./pwrsummary.sh -o csv
#

Все это довольно распространенные тесты производительности пользовательского интерфейса в реальном мире, мало чем отличающиеся от тех, которые вы можете увидеть в наше собственное тестирование. Похоже, что изменение загрузки домашней страницы The Verge при открытии Chrome произошло довольно недавно, поскольку до прошлого года Google открывал только новую вкладку в Chrome во время этих тестов. Изменение, внесенное в 28 мая 2015 г. Однако представил использование The Verge при тестировании Chrome. Как ни забавно, Google использует The Verge of allplaces при автоматизации рабочих нагрузок. тестирования, имейте в виду, что это не означает, что The Verge — худший нарушитель для Интернета. производительность.

На самом деле это далеко не так, поскольку многие другие веб-страницы страдают от посредственной производительности из-за распространения все большего и большего количества рекламы, компенсирующей рост количества блокировщиков рекламы. Действительно, скорее всего, решение использовать The Verge было просто из соображений удобства, учитывая, насколько технологичны смекалка среднего сотрудника Google и шутка многих энтузиастов по поводу веб-страницы The Verge производительность.