Más que un meme: Google utiliza TheVerge.com para comparar dispositivos Nexus

Parece que Google carga la página de inicio de The Verge cuando realiza pruebas de automatización de carga de trabajo en todos sus dispositivos Nexus.

Investigar en AOSP es una excelente manera de hacer nuevos descubrimientos sobre Android, y esta vez nos encontramos con algo bastante divertido. Durante algún tiempo, los usuarios han informado que el sitio web de tecnología ElVerge.com proporcionó un rendimiento lento en dispositivos móviles.

Ahora hay que reconocer que el rendimiento de su sitio web ha mejorado con el tiempo, según mi experiencia. Además, no es que otros sitios (incluido el nuestro) no tengan problemas en los que podamos esforzarnos por trabajar, pero aun así me pareció bastante divertido que en su conjunto oficial de puntos de referencia de carga de trabajo, Google decidió utilizar The Verge en sus pruebas.


Automatización de cargas de trabajo de Android

Automatización de cargas de trabajo (WA) es un marco desarrollado por BRAZO para recopilar datos de rendimiento en dispositivos Android mediante la ejecución de un conjunto de muchas cargas de trabajo repetibles. Google compara el rendimiento de sus dispositivos realizando muchas de estas pruebas de carga de trabajo y recopilando un resumen de uso de energía, que luego importan a una hoja de cálculo para ver cómo sus optimizaciones han mejorado el rendimiento en comparación con tiempo. La compañía elige qué aplicaciones incluir en su conjunto de pruebas, pero en general se limitan a la mayoría de las aplicaciones populares de Google. Esa es la esencia de cómo funciona, pero mostraremos la evidencia del código fuente y describiremos la prueba. suites con más detalle para que pueda tener una mejor idea de qué pruebas automatizadas realiza Google para medir actuación.

Dentro de AOSP, hay una directorio dedicado a las pruebas de automatización de la carga de trabajo. Las aplicaciones que se utilizan para las pruebas se definen en defs.shy, por lo general, se incluyen en una de dos categorías: aplicación de Google predeterminada y preinstalada o navegador web de terceros. Una aplicación de referencia se destaca del resto y es com.BrueComputing.SunTemple/com.epicgames.ue4.GameActivity que supongo se refiere a la Revisor de BrueBench ST punto de referencia que se basa en 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'

Estas actividades se inician a través de la línea de comando ADB con lo siguiente Systrace Opciones para medir el rendimiento de la aplicación:

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

La aplicación Chrome en particular se inicia con una bandera para cargar The Verge:

En cuanto a por qué la prueba parece diferir para el volantis (Nexus 9), no estoy exactamente seguro. De todos modos, en cuanto a las pruebas por las que realmente pasa esta actividad de Chrome con The Verge, podemos determinarlo mirando el código fuente de las pruebas de automatización de la carga de trabajo.


Conjuntos de pruebas

Primero, está el systemapps.sh prueba, que Google afirma que funciona como tal:

# 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.

A continuación, está el recientefling.sh prueba, que funciona así:

# 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.

Y luego esta chromefling.sh, que prueba el rendimiento de Chrome de manera bastante simple:

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

Otra prueba divertida en la suite Workload Automation, aunque no está relacionada con The Verge, es la youtube.sh prueba de rendimiento que mide el bloqueo de la interfaz de usuario

#
# 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

Finalmente, cada una de estas pruebas se utiliza para medir el uso de energía en el mundo real recorriéndolas durante un cierto período de tiempo, como se define en 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.

Luego, Google puede recopilar estos datos utilizando pwrsummary.sh e importarlos a una hoja de cálculo:

# 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
#

Todas estas son pruebas de rendimiento de UI del mundo real bastante comunes, no muy diferentes de las que verías en nuestras propias pruebas. Parece que el cambio para cargar la página de inicio de The Verge al abrir Chrome fue bastante reciente, ya que antes del año pasado Google solo abría una nueva pestaña en Chrome durante estas pruebas. Un cambio hecho en 28 de mayo de 2015 Sin embargo, introdujo el uso de The Verge al probar Chrome. Por divertido que sea que Google esté utilizando The Verge en todos los lugares al realizar la automatización de cargas de trabajo. pruebas, tenga en cuenta que esto no significa que The Verge sea el peor infractor que existe para la web actuación.

Al contrario, muchas otras páginas web adolecen de un rendimiento mediocre gracias a la proliferación de cada vez más anuncios para compensar el aumento de los bloqueadores de publicidad. De hecho, lo más probable es que la decisión de utilizar The Verge fuera simplemente por conveniencia, dado cómo la tecnología inteligente que es el Googler promedio y la broma interna entre muchos entusiastas sobre la página web de The Verge actuación.