Più di un meme: Google utilizza TheVerge.com per eseguire il benchmark dei dispositivi Nexus

Sembra che Google carichi la home page di The Verge durante l'esecuzione di test di automazione del carico di lavoro su tutti i suoi dispositivi Nexus.

Scavare in AOSP è un ottimo modo per fare nuove scoperte su Android e questa volta ci siamo imbattuti in qualcosa di piuttosto divertente. Per un po 'di tempo, gli utenti hanno segnalato che il sito web della tecnologia TheVerge.com ha fornito prestazioni lente sui dispositivi mobili.

Va detto a loro merito che, secondo la mia esperienza, le prestazioni del loro sito web sono migliorate nel tempo. Inoltre, non è che altri siti (incluso il nostro) non abbiano problemi su cui possiamo sforzarci di lavorare, ma ciò nonostante ho trovato piuttosto divertente il fatto che nella sua insieme ufficiale di benchmark del carico di lavoro, Google ha deciso di utilizzare The Verge nei propri test.


Automazione del carico di lavoro Android

Automazione del carico di lavoro (WA) è un framework sviluppato da BRACCIO per raccogliere dati sulle prestazioni sui dispositivi Android eseguendo una suite di molti carichi di lavoro ripetibili. Google confronta le prestazioni dei propri dispositivi eseguendo molti di questi test del carico di lavoro e raccogliendone un riepilogo consumo energetico, che poi importano in un foglio di calcolo per vedere in che modo le loro ottimizzazioni hanno migliorato le prestazioni tempo. L'azienda sceglie quali app includere nella sua suite di test, ma in generale si limita alla maggior parte delle popolari app Google. Questo è il succo di come funziona, ma mostreremo le prove dal codice sorgente e descriveremo il test suite in modo più dettagliato in modo da poter avere un quadro migliore di ciò che i test automatizzati Google esegue per misurare prestazione.

All'interno di AOSP, esiste a rubrica dedicata ai test di automazione del carico di lavoro. Le app utilizzate per i test sono definite in defs.she generalmente rientrano in una delle due categorie: app Google predefinita e preinstallata o browser web di terze parti. Un'app di riferimento si distingue dalle altre, ed è com.BrueComputing.SunTemple/com.epicgames.ue4.GameActivity che presumo si riferisca a Revisore di BrueBench ST benchmark basato sull'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'

Queste attività vengono avviate tramite la riga di comando ADB con quanto segue Systrace opzioni per misurare le prestazioni dell'app:

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

L'app Chrome in particolare viene avviata con un flag per caricare The Verge:

Per quanto riguarda il motivo per cui il test sembra differire per il volantis (Nexus 9), non ne sono esattamente sicuro. Ad ogni modo, per quanto riguarda i test effettivamente sottoposti a questa attività di Chrome con The Verge, possiamo determinarli osservando il codice sorgente dei test di automazione del carico di lavoro.


Suite di prova

Per prima cosa, c'è il systemapps.sh test, che secondo Google funziona come tale:

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

Poi c'è il recentefling.sh test, che funziona così:

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

E poi c'è chromefling.sh, che testa le prestazioni di Chrome in modo piuttosto semplice:

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

Un altro test divertente nella suite Workload Automation, sebbene non correlato a The Verge, è il youtube.sh test delle prestazioni che misura il jank dell'interfaccia utente

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

Infine, ciascuno di questi test viene utilizzato per misurare il consumo di energia nel mondo reale scorrendoli ciclicamente per un certo periodo di tempo, come definito in 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 può quindi raccogliere questi dati utilizzando pwrsummary.sh e importarli in un foglio di calcolo:

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

Questi sono tutti test delle prestazioni dell'interfaccia utente nel mondo reale abbastanza comuni, non diversi da quelli in cui vedresti i nostri test. Sembra che la modifica per caricare la home page di The Verge all'apertura di Chrome sia piuttosto recente, poiché prima dell'anno scorso Google apriva solo una nuova scheda in Chrome durante questi test. Un cambiamento apportato 28 maggio 2015 ha tuttavia introdotto l'uso di The Verge durante il test di Chrome. Per quanto divertente sia il fatto che Google utilizzi The Verge tra tutti i luoghi durante l'esecuzione dell'automazione del carico di lavoro test, tieni presente che questo non significa che The Verge sia il peggior trasgressore in circolazione per il web prestazione.

Tutt'altro, infatti, poiché molte altre pagine web soffrono di prestazioni mediocri a causa della proliferazione di sempre più annunci per compensare l'aumento degli ad-blocker. In effetti, è molto probabile che la decisione di utilizzare The Verge sia stata semplicemente dettata dalla comodità, data la tecnologia il googler medio è esperto e lo scherzo interno di molti appassionati riguardo alla pagina web di The Verge prestazione.