Viac ako meme: Google používa TheVerge.com na porovnávanie zariadení Nexus

click fraud protection

Zdá sa, že Google načíta domovskú stránku The Verge pri testovaní automatizácie pracovného zaťaženia na všetkých svojich zariadeniach Nexus.

Prehrabávať sa v AOSP je skvelý spôsob, ako robiť nové objavy o Androide, a tentoraz sme narazili na niečo celkom veselé. Po určitú dobu, používatelia nahlásili že technologická webová stránka TheVerge.com poskytuje pomalý výkon na mobilných zariadeniach.

Podľa mojich skúseností sa výkon ich webových stránok časom zlepšil. Navyše to nie je tak, že by iné stránky (vrátane našej vlastnej) nemali problémy, na ktorých by sme sa mohli snažiť pracovať, no napriek tomu mi prišlo celkom zábavné, že oficiálnu sadu benchmarkov pracovného zaťaženia sa Google rozhodol použiť pri testovaní The Verge.


Android Workload Automation

Automatizácia pracovného zaťaženia (WA) je rámec vyvinutý spoločnosťou ARM na zhromažďovanie údajov o výkone na zariadeniach so systémom Android vykonaním sady mnohých opakovateľných pracovných zaťažení. Google porovnáva výkon na svojich zariadeniach vykonaním mnohých z týchto testov pracovného zaťaženia a zhromažďovaním súhrnu spotrebu energie, ktorú potom importujú do tabuľky, aby zistili, ako ich optimalizácie zlepšili výkon čas. Spoločnosť vyberá a vyberá, ktoré aplikácie zahrnie do svojho testovacieho balíka, ale vo všeobecnosti sa obmedzuje na väčšinu populárnych aplikácií Google. To je podstata toho, ako to funguje, ale ukážeme dôkazy zo zdrojového kódu a opíšeme test balíky podrobnejšie, aby ste si mohli urobiť lepší obraz o tom, aké automatizované testy Google meria výkon.

V rámci AOSP existuje a vyhradený adresár na testy automatizácie pracovného zaťaženia. Aplikácie, ktoré sa používajú na testovanie, sú definované v defs.sha vo všeobecnosti spadajú do jednej z dvoch kategórií: predvolená predinštalovaná aplikácia Google alebo webový prehliadač tretej strany. Jedna benchmarková aplikácia vyčnieva z ostatných, a to je com.BrueComputing.SunTemple/com.epicgames.ue4.GameActivity čo predpokladám odkazuje na Recenzent BrueBench ST benchmark, ktorý je založený na 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'

Tieto aktivity sa spúšťajú cez príkazový riadok ADB s nasledujúcim Systrace možnosti merania výkonu aplikácie:

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

Najmä aplikácia Chrome sa spúšťa s príznakom na načítanie The Verge:

Pokiaľ ide o to, prečo sa zdá, že test sa líši pre volantis (Nexus 9), nie som si úplne istý. V každom prípade, akými testami táto aktivita prehliadača Chrome s The-Verge skutočne prechádza, môžeme určiť pohľadom na zdrojový kód testov automatizácie pracovného zaťaženia.


Testovacie suity

Najprv je tu systemapps.sh test, o ktorom Google uvádza, že funguje takto:

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

Ďalej je tu recentfling.sh test, ktorý funguje takto:

# 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 potom je tu chromefling.sh, ktorý testuje výkon prehliadača Chrome pomerne jednoducho:

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

Ďalším zábavným testom v balíku Workload Automation, hoci nesúvisiacim s The Verge, je youtube.sh výkonnostný test, ktorý meria 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

Nakoniec sa každý z týchto testov používa na meranie spotreby energie v reálnom svete tak, že sa nimi bude cyklicky prechádzať určitý čas, ako je definované v 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 potom môže tieto údaje zhromažďovať pomocou pwrsummary.sh a importujte ich do tabuľky:

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

Toto všetko sú pomerne bežné testy výkonu používateľského rozhrania v reálnom svete, nie nepodobné tým, v ktorých by ste ich videli naše vlastné testovanie. Zdá sa, že zmena načítania domovskej stránky The Verge pri otváraní prehliadača Chrome bola pomerne nedávna, pretože pred minulým rokom spoločnosť Google počas týchto testov otvárala iba novú kartu v prehliadači Chrome. Vykonaná zmena 28. mája 2015 zaviedol však používanie The Verge pri testovaní prehliadača Chrome. Je zábavné, že Google pri automatizácii pracovného zaťaženia používa The Verge všetkých miest testovania, majte na pamäti, že to neznamená, že The Verge je najhorším páchateľom na webe výkon.

V skutočnosti to nie je ani zďaleka tak, ako mnohé iné webové stránky trpia podpriemerným výkonom vďaka šíreniu čoraz väčšieho množstva reklám, ktoré kompenzujú nárast blokátorov reklám. V skutočnosti je najpravdepodobnejšie, že rozhodnutie použiť The Verge bolo len z pohodlia, vzhľadom na to, ako dôvtipný priemerný zamestnanec spoločnosti Google a vnútorný vtip mnohých nadšencov o webovej stránke The Verge výkon.