Više od mema: Google koristi TheVerge.com za usporedbu Nexus uređaja

Čini se da Google učitava početnu stranicu The Vergea prilikom izvođenja testiranja automatizacije radnog opterećenja na svim svojim Nexus uređajima.

Kopanje po AOSP-u izvrstan je način za nova otkrića o Androidu, a ovaj smo put naišli na nešto prilično urnebesno. Neko vrijeme, prijavili su korisnici da tehnološka web stranica TheVerge.com omogućio spor rad na mobilnim uređajima.

Svaka im čast, prema mom iskustvu, izvedba njihove web stranice s vremenom se poboljšala. Osim toga, nije da druge stranice (uključujući našu) nemaju problema na kojima bismo mogli raditi, ali svejedno mi je bilo zabavno da u službenog skupa mjerila radnog opterećenja, Google je odlučio koristiti The Verge u svom testiranju.


Automatizacija opterećenja Androida

Automatizacija radnog opterećenja (WA) je okvir koji je razvio RUKA za prikupljanje podataka o izvedbi na Android uređajima izvršavanjem niza mnogih ponovljivih radnih opterećenja. Google mjeri performanse na svojim uređajima provodeći mnoge od ovih testova radnog opterećenja i prikupljajući sažetak potrošnju energije, koju potom uvoze u proračunsku tablicu kako bi vidjeli kako su njihove optimizacije poboljšale performanse vrijeme. Tvrtka bira koje će aplikacije uključiti u svoj testni paket, ali općenito se ograničavaju na većinu popularnih Googleovih aplikacija. To je suština načina na koji funkcionira, ali pokazat ćemo dokaze iz izvornog koda i opisati test pakete detaljnije kako biste mogli dobiti bolju sliku o tome koje automatizirane testove Google radi za mjerenje izvođenje.

Unutar AOSP postoji imenik posvećen na testove automatizacije radnog opterećenja. Aplikacije koje se koriste za testiranje definirane su u defs.sh, i općenito spadaju u jednu od dvije kategorije: zadana, unaprijed instalirana Google aplikacija ili web-preglednik treće strane. Jedna se benchmark aplikacija izdvaja od ostalih, a to je com.BrueComputing.SunTemple/com.epicgames.ue4.GameActivity što pretpostavljam da se odnosi na BrueBench ST recenzent benchmark koji se temelji na Unreal Engineu 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'

Ove se aktivnosti pokreću preko ADB naredbenog retka sa sljedećim Systrace opcije za mjerenje izvedbe aplikacije:

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

Posebno se aplikacija Chrome pokreće s oznakom za učitavanje The Vergea:

Što se tiče zašto se čini da se test razlikuje za volantis (Nexus 9), nisam baš siguran. U svakom slučaju, što se tiče testova kroz koje zapravo prolazi ova Chrome-activity-with-The-Verge, možemo odrediti gledajući izvorni kod testova automatizacije radnog opterećenja.


Kompleti za testiranje

Prvo, tu je systemapps.sh test, za koji Google tvrdi da funkcionira kao takav:

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

Sljedeće, tu je recentfling.sh test, koji radi ovako:

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

A onda postoji kromiranje.sh, koji testira izvedbu Chromea prilično jednostavno:

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

Još jedan zabavan test u paketu Workload Automation, iako nije povezan s The Vergeom, je youtube.sh test performansi koji mjeri UI jank

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

Naposljetku, svaki od ovih testova koristi se za mjerenje potrošnje energije u stvarnom svijetu kruženjem kroz njih određeno vrijeme, kako je definirano u 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 zatim može prikupiti te podatke pomoću pwrsummary.sh i uvezite ih u proračunsku tablicu:

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

Sve su to prilično uobičajeni testovi izvedbe korisničkog sučelja u stvarnom svijetu, koji nisu različiti od onih u kojima biste vidjeli naše vlastito testiranje. Čini se da je promjena za učitavanje početne stranice The Vergea pri otvaranju Chromea bila prilično nedavna, budući da je prije prošle godine Google otvarao samo novu karticu u Chromeu tijekom ovih testova. Promjena izvršena u 28. svibnja 2015 međutim uveo korištenje The Vergea prilikom testiranja Chromea. Koliko god zabavno bilo da Google koristi The Verge of all places kada izvršava automatizaciju radnog opterećenja testiranja, imajte na umu da to ne znači da je The Verge najveći prijestupnik na webu izvođenje.

Daleko od toga, zapravo, budući da mnoge druge web-stranice pate od osrednje izvedbe zahvaljujući sve većem broju oglasa koji kompenziraju porast broja blokatora oglasa. Doista, vrlo je vjerojatno da je odluka o korištenju The Vergea bila jednostavno iz prikladnosti, s obzirom na to koliko je tehnologija pametan je prosječan Googler i interna šala mnogih entuzijasta u vezi s web stranicom The Verge izvođenje.