Plus qu'un mème: Google utilise TheVerge.com pour comparer les appareils Nexus

Il semble que Google charge la page d'accueil de The Verge lors des tests d'automatisation de la charge de travail sur tous ses appareils Nexus.

Fouiller dans AOSP est un excellent moyen de faire de nouvelles découvertes sur Android, et cette fois nous sommes tombés sur quelque chose d'assez hilarant. Pour quelques temps, les utilisateurs ont signalé que le site Web technologique TheVerge.com fourni des performances lentes sur les appareils mobiles.

Maintenant, à leur honneur, les performances de leur site Web se sont améliorées au fil du temps, d'après mon expérience. De plus, ce n'est pas comme si d'autres sites (y compris le nôtre) n'avaient pas de problèmes sur lesquels nous pouvons nous efforcer de travailler, mais j'ai néanmoins trouvé assez amusant que dans son ensemble officiel de références de charge de travail, Google a décidé d'utiliser The Verge dans ses tests.


Automatisation de la charge de travail Android

Automatisation de la charge de travail (WA) est un cadre développé par BRAS

 pour collecter des données de performances sur les appareils Android en exécutant une suite de nombreuses charges de travail répétables. Google évalue les performances de ses appareils en effectuant bon nombre de ces tests de charge de travail et en collectant un résumé des résultats. consommation d'énergie, qu'ils importent ensuite dans une feuille de calcul pour voir comment leurs optimisations ont amélioré les performances par rapport à temps. La société choisit les applications à inclure dans sa suite de tests, mais en général, elle se limite à la plupart des applications Google populaires. C'est l'essentiel de la façon dont cela fonctionne, mais nous allons montrer les preuves du code source et décrire le test suites plus en détail afin que vous puissiez avoir une meilleure idée des tests automatisés que Google effectue pour mesurer performance.

Au sein de l'AOSP, il existe un répertoire dédié aux tests d'automatisation de la charge de travail. Les applications utilisées pour les tests sont définies dans defs.sh, et appartiennent généralement à l'une des deux catégories suivantes: application Google par défaut, préinstallée ou navigateur Web tiers. Une application de référence se démarque des autres, et c'est com.BrueComputing.SunTemple/com.epicgames.ue4.GameActivity qui, je suppose, fait référence au BrueBench ST Réviseur benchmark basé sur 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'

Ces activités sont lancées via la ligne de commande ADB avec les éléments suivants Systrace options pour mesurer les performances de l'application :

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

L'application Chrome en particulier est lancée avec un indicateur pour charger The Verge :

Quant à savoir pourquoi le test semble différer pour le volantis (Nexus 9), je ne suis pas exactement sûr. Quoi qu'il en soit, quant aux tests que cette activité Chrome avec The Verge passe réellement, nous pouvons le déterminer en examinant le code source des tests d'automatisation de la charge de travail.


Suites de tests

Tout d'abord, il y a le systemapps.sh test, qui, selon Google, fonctionne comme tel :

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

Ensuite, il y a le récentfling.sh test, qui fonctionne comme ceci :

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

Et puis il y a chromefling.sh, qui teste les performances de Chrome assez simplement :

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

Un autre test amusant de la suite Workload Automation, bien que sans rapport avec The Verge, est le youtube.sh test de performances qui mesure les erreurs de l'interface utilisateur

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

Enfin, chacun de ces tests est utilisé pour mesurer la consommation d'énergie réelle en les parcourant pendant un certain temps, tel que défini dans 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 peut ensuite collecter ces données à l'aide pwrsummary.sh et importez-les dans une feuille de calcul :

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

Ce sont tous des tests de performances de l'interface utilisateur assez courants dans le monde réel, un peu comme ceux que vous verriez dans nos propres tests. Il semble que le changement consistant à charger la page d'accueil de The Verge lors de l'ouverture de Chrome soit plutôt récent, car avant l'année dernière, Google n'ouvrait un nouvel onglet dans Chrome que pendant ces tests. Un changement apporté à 28 mai 2015 a cependant introduit l'utilisation de The Verge lors du test de Chrome. Aussi amusant soit-il, Google utilise The Verge of all places pour effectuer l'automatisation de la charge de travail. tests, gardez à l'esprit que cela ne signifie pas que The Verge est le pire délinquant sur le Web performance.

Loin de là, en fait, car de nombreuses autres pages Web souffrent de performances médiocres en raison de la prolifération de plus en plus de publicités pour compenser la montée en puissance des bloqueurs de publicités. En effet, il est fort probable que la décision d'utiliser The Verge ait été simplement motivée par des raisons de commodité, compte tenu de la façon dont la technologie le Googleur moyen est avisé et la blague interne parmi de nombreux passionnés concernant la page Web de The Verge performance.