Näib, et Google laadib kõigis Nexuse seadmetes töökoormuse automatiseerimise testimisel üles The Verge'i kodulehe.
AOSP-s ringi kaevamine on suurepärane viis Androidi kohta uusi avastusi teha ja seekord oleme kohanud midagi üsna lõbusat. Mõnda aega, kasutajad on teatanud et tehnoloogia veebisait TheVerge.com andis mobiilseadmetes aeglase jõudluse.
Nüüd on nende kiituseks öeldud, et nende veebisaidi toimivus on minu kogemuse põhjal aja jooksul paranenud. Lisaks ei ole nii, et teistel saitidel (kaasa arvatud meie omal) poleks probleeme, mille kallal võiksime pingutada, kuid sellegipoolest oli minu arvates üsna lõbus, et ametliku töökoormuse võrdlusnäitajate komplekti, otsustas Google oma testimisel kasutada The Verge'i.
Androidi töökoormuse automatiseerimine
Töökoormuse automatiseerimine (WA) on raamistik, mille on välja töötanud ARM Android-seadmetes jõudlusandmete kogumiseks, täites paljude korratavate töökoormuste komplekti. Google võrdleb nende seadmete jõudlust, tehes palju neid töökoormuse teste ja kogudes nende kohta kokkuvõtte energiakasutust, mille nad impordivad seejärel arvutustabelisse, et näha, kuidas nende optimeerimised on jõudlust parandanud aega. Ettevõte valib ja valib, millised rakendused oma testkomplekti lisada, kuid üldiselt piirduvad nad enamiku populaarsete Google'i rakendustega. See on selle toimimise põhiolemus, kuid näitame lähtekoodist saadud tõendeid ja kirjeldame testi sviite üksikasjalikumalt, et saaksite parema pildi sellest, milliseid automatiseeritud teste Google mõõdab esitus.
AOSP-s on a pühendatud kataloog töökoormuse automatiseerimise testidele. Testimiseks kasutatavad rakendused on määratletud defs.sh, ja kuuluvad üldiselt ühte kahest kategooriast: vaike-, eelinstallitud Google'i rakendus või kolmanda osapoole veebibrauser. Üks võrdlusrakendus eristub teistest ja see ongi com.BrueComputing.SunTemple/com.epicgames.ue4.GameActivity
mis minu arvates viitab sellele BrueBench ST arvustaja etalon, mis põhineb Unreal Engine 4-l.
# 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'
Need tegevused käivitatakse ADB käsurea kaudu järgmisega Systrace rakenduse toimivuse mõõtmise võimalused:
dflttracecategories="gfx input view am rs power sched freq idle load memreclaim"
Eelkõige käivitatakse Chrome'i rakendus koos lipuga The Verge'i laadimiseks:
Mis puutub sellesse, miks test näib olevat erinev volantis (Nexus 9), ma pole päris kindel. Igatahes, milliseid teste see Chrome'i tegevus-koos-The-Verge tegelikult läbib, saame kindlaks teha, vaadates töökoormuse automatiseerimise testide lähtekoodi.
Testsviidid
Esiteks, seal on systemapps.sh test, mis Google'i sõnul töötab järgmiselt:
# 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.
Järgmisena on hiljutine fling.sh test, mis töötab järgmiselt:
# 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 siis on chromefling.sh, mis testib Chrome'i jõudlust üsna lihtsalt:
# Script to start 3 chrome tabs, fling each of them, repeat
# For each iteration, Total frames and janky frames are reported.
Veel üks lõbus test Workload Automationi komplektis, kuigi see pole The Verge'iga seotud, on youtube.sh jõudlustest, mis mõõdab kasutajaliidese 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
Lõpuks kasutatakse kõiki neid teste reaalse maailma energiatarbimise mõõtmiseks, liikudes neid teatud aja jooksul läbi, nagu on määratletud 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.
Seejärel saab Google neid andmeid koguda kasutades pwrsummary.sh ja importige need arvutustabelisse:
# 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
#
Need on kõik üsna tavalised reaalses maailmas kasutatavad kasutajaliidese jõudlustestid, erinevalt nendest, mida näete meie enda testimine. Näib, et muudatus The Verge'i kodulehe laadimisel Chrome'i avamisel oli üsna värske, kuna enne eelmisel aastal avas Google Chrome'is uue vahekaardi ainult nende testide ajal. Sisse tehtud muudatus 28. mai 2015 tutvustas siiski The Verge'i kasutamist Chrome'i testimisel. Nii lõbus kui see ka pole, et Google kasutab töökoormuse automatiseerimisel kõigi kohtade verge testimisel pidage meeles, et see ei tähenda, et The Verge oleks veebis kõige hullem rikkuja esitus.
Tegelikult on see kaugel sellest, kuna paljud teised veebilehed kannatavad keskpärase jõudluse tõttu, kuna üha enam levib reklaame, et kompenseerida reklaamiblokeerijate arvu kasvu. Tõepoolest, on kõige tõenäolisem, et otsus The Verge'i kasutada tuli lihtsalt mugavuse tõttu, arvestades seda, kuidas tehnoloogia keskmine Google'i töötaja on nutikas ja The Verge'i veebilehega seotud entusiastide nali esitus.