Enemmän kuin meemi: Google käyttää TheVerge.com-sivustoa Nexus-laitteiden vertailuun

Näyttää siltä, ​​​​että Google lataa The Vergen kotisivun suorittaessaan Workload Automation -testauksen kaikissa Nexus-laitteissaan.

AOSP: n kaivaminen on loistava tapa tehdä uusia löytöjä Androidista, ja tällä kertaa olemme törmänneet johonkin melko hauskuuteen. Jonkin aikaa, käyttäjät ovat ilmoittaneet että teknologiasivusto TheVerge.com tarjosi hidasta suorituskykyä mobiililaitteissa.

Heidän ansioksi on sanottava, että heidän verkkosivustonsa suorituskyky on kokemukseni mukaan parantunut ajan myötä. Lisäksi ei ole niin kuin muilla sivustoilla (mukaan lukien omallamme) ei olisi ongelmia, joiden parissa voisimme yrittää työskennellä, mutta minusta oli kuitenkin melko huvittavaa, että virallisten työkuormitusarvojen joukon, Google päätti käyttää The Vergeä testauksessaan.


Android Workload Automation

Työkuorman automaatio (WA) on kehys, jonka on kehittänyt ARM suorituskykytietojen keräämiseen Android-laitteissa suorittamalla useita toistettavia työkuormia. Google vertailee heidän laitteidensa suorituskykyä tekemällä monia näistä kuormitustesteistä ja keräämällä niistä yhteenvedon virrankulutus, jonka he sitten tuovat laskentataulukkoon nähdäkseen, kuinka heidän optimointinsa ovat parantaneet suorituskykyä verrattuna aika. Yritys poimii ja valitsee, mitkä sovellukset sisällytetään testisarjaansa, mutta yleensä ne rajoittuvat useimpiin suosituimpiin Google-sovelluksiin. Tämä on sen toiminnan ydin, mutta näytämme todisteet lähdekoodista ja kuvailemme testiä sviittejä tarkemmin, jotta saat paremman kuvan siitä, mitä automaattisia testejä Google mittaa esitys.

AOSP: ssä on a omistettu hakemisto työkuorman automaatiotesteihin. Testaamiseen käytettävät sovellukset on määritelty kohdassa defs.sh, ja ne kuuluvat yleensä johonkin kahdesta luokasta: oletusarvoinen, esiasennettu Google-sovellus tai kolmannen osapuolen verkkoselain. Yksi vertailusovellus erottuu muista, ja se on com.BrueComputing.SunTemple/com.epicgames.ue4.GameActivity jonka oletan viittaavan siihen BrueBench ST -arvostelija benchmark, joka perustuu Unreal Engine 4:ään.

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

Nämä toiminnot käynnistetään ADB-komentorivin kautta seuraavasti Systrace vaihtoehdot sovelluksen tehokkuuden mittaamiseen:

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

Erityisesti Chrome-sovellus käynnistetään The Vergen latauslipulla:

Mitä tulee siihen, miksi testi näyttää eroavan volantis (Nexus 9), en ole aivan varma. Joka tapauksessa, mitä testejä tämä Chrome-aktiviteetti-The-Verge todella läpikäy, voimme määrittää tarkastelemalla työkuorman automaatiotestien lähdekoodia.


Test Suites

Ensinnäkin siellä on systemapps.sh testi, joka Googlen mukaan toimii sellaisenaan:

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

Seuraavaksi on viimeinenfling.sh testi, joka toimii näin:

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

Ja sitten on chromefling.sh, joka testaa Chromen suorituskyvyn melko yksinkertaisesti:

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

Toinen hauska testi Workload Automation -sarjassa, vaikka se ei liity The Vergeen, on youtube.sh suorituskykytesti, joka mittaa käyttöliittymän jakkoja

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

Lopuksi kutakin näistä testeistä käytetään mittaamaan todellista virrankulutusta kiertämällä niitä tietyn ajan, kuten on määritelty 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 voi sitten kerätä nämä tiedot käyttämällä pwrsummary.sh ja tuo ne laskentataulukkoon:

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

Nämä ovat kaikki melko yleisiä reaalimaailman käyttöliittymän suorituskykytestejä, toisin kuin ne, joita näet omat testimme. Vaikuttaa siltä, ​​että muutos The Vergen kotisivun lataamiseen Chromea avattaessa oli melko tuore, sillä ennen viime vuotta Google avasi vain uuden välilehden Chromessa näiden testien aikana. Sisään tehty muutos 28 toukokuuta 2015 esitteli kuitenkin The Vergen käytön Chromea testattaessa. Niin huvittavaa kuin se onkin, että Google käyttää kaikkien paikkojen Vergeä suorittaessaan Workload Automation -toimintoa Muista, että tämä ei tarkoita, että The Verge olisi verkon pahin rikollinen esitys.

Itse asiassa kaukana siitä, koska monet muut verkkosivut kärsivät keskinkertaisesta suorituskyvystä, koska yhä useammat mainokset lisääntyvät kompensoimaan mainosten estajien lisääntymistä. Todellakin, on todennäköisintä, että päätös käyttää The Vergeä oli yksinkertaisesti tarpeeton, koska tekniikka Keskiverto Googlen työntekijä on ymmärtäväinen ja sisäpiirin vitsi monien The Vergen verkkosivua koskevien harrastajien keskuudessa esitys.