Zdi se, da Google naloži domačo stran The Verge, ko izvaja testiranje avtomatizacije delovne obremenitve na vseh svojih napravah Nexus.
Kopanje po AOSP je odličen način za nova odkritja o Androidu in tokrat smo naleteli na nekaj precej smešnega. Za nekaj časa, sporočili uporabniki da je tehnološko spletno mesto TheVerge.com zagotavlja počasno delovanje na mobilnih napravah.
Zdaj jim je treba priznati, da se je po mojih izkušnjah uspešnost njihove spletne strani sčasoma izboljšala. Poleg tega ni tako, kot da druga spletna mesta (vključno z našim) nimajo težav, na katerih bi se lahko potrudili, vendar se mi je vseeno zdelo zelo zabavno, da v uradnega nabora meril delovne obremenitve, se je Google odločil, da bo pri testiranju uporabil The Verge.
Avtomatizacija delovne obremenitve Android
Avtomatizacija delovne obremenitve (WA) je ogrodje, ki ga je razvil ROKA za zbiranje podatkov o zmogljivosti na napravah Android z izvajanjem niza številnih ponovljivih delovnih obremenitev. Google primerja uspešnost svojih naprav tako, da izvede veliko teh preizkusov delovne obremenitve in zbere povzetek porabo energije, ki jo nato uvozijo v preglednico, da vidijo, kako so njihove optimizacije izboljšale delovanje čas. Podjetje izbira in izbira, katere aplikacije bo vključilo v svoj testni paket, vendar se na splošno omejujejo na večino priljubljenih Googlovih aplikacij. To je bistvo, kako deluje, vendar bomo prikazali dokaze iz izvorne kode in opisali test zbirk podrobneje, da boste lahko dobili boljšo sliko o tem, katere avtomatske teste Google izvaja za merjenje izvedba.
Znotraj AOSP obstaja a imenik namenjen na teste avtomatizacije delovne obremenitve. Aplikacije, ki se uporabljajo za testiranje, so opredeljene v defs.sh, in na splošno spadajo v eno od dveh kategorij: privzeti, vnaprej nameščen Google App ali spletni brskalnik tretje osebe. Ena primerjalna aplikacija izstopa od ostalih in je com.BrueComputing.SunTemple/com.epicgames.ue4.GameActivity
kar predvidevam, da se nanaša na Pregledovalec BrueBench ST merilo uspešnosti, ki temelji na motorju 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'
Te dejavnosti se zaženejo prek ukazne vrstice ADB z naslednjim Systrace možnosti za merjenje uspešnosti aplikacije:
dflttracecategories="gfx input view am rs power sched freq idle load memreclaim"
Zlasti aplikacija Chrome se zažene z zastavico za nalaganje The Verge:
Zakaj se zdi, da se test razlikuje za volantis (Nexus 9), nisem ravno prepričan. Kakor koli že, glede tega, kakšne preizkuse dejansko gre ta Chrome-activity-with-The-Verge, lahko ugotovimo tako, da pogledamo izvorno kodo testov avtomatizacije delovne obremenitve.
Testne zbirke
Najprej je tu systemapps.sh test, za katerega Google trdi, da deluje kot tak:
# 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.
Naslednji je recentfling.sh test, ki deluje takole:
# 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.
In potem je tu chromefling.sh, ki dokaj preprosto preizkusi delovanje Chroma:
# Script to start 3 chrome tabs, fling each of them, repeat
# For each iteration, Total frames and janky frames are reported.
Še en zabaven preizkus v paketu Workload Automation, čeprav ni povezan z The Verge, je youtube.sh test zmogljivosti, ki meri 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
Končno se vsak od teh testov uporablja za merjenje porabe energije v resničnem svetu tako, da se med njimi kroži določen čas, kot je opredeljeno 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 lahko te podatke nato zbira z uporabo pwrsummary.sh in jih uvozite v preglednico:
# 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
#
Vse to so dokaj običajni testi delovanja uporabniškega vmesnika v resničnem svetu, podobni tistim, ki jih lahko vidite naše lastno testiranje. Zdi se, da je bila sprememba nalaganja domače strani The Verge ob odpiranju Chroma precej nedavna, saj je predlanskim Google med temi testi odprl le nov zavihek v Chromu. Izvedena sprememba v 28. maj 2015 vendarle predstavil uporabo The Verge pri testiranju Chroma. Kakor koli zabavno je, da Google pri izvajanju avtomatizacije delovne obremenitve uporablja The Verge of all places testiranje, ne pozabite, da to ne pomeni, da je The Verge najhujši kršitelj na spletu izvedba.
Pravzaprav daleč od tega, saj številne druge spletne strani trpijo zaradi povprečnega delovanja zaradi širjenja vse več in več oglasov, ki nadomestijo porast zaviralcev oglasov. Pravzaprav je zelo verjetno, da je bila odločitev za uporabo The Verge preprosto iz priročnosti, glede na to, kako tehn. zdrava pamet je povprečen Googlov in notranja šala mnogih navdušencev o spletni strani The Verge izvedba.