Vairāk nekā mēmi: Google izmanto vietni TheVerge.com, lai veiktu Nexus ierīču salīdzināšanu

Šķiet, ka Google ielādē The Verge sākumlapu, veicot Workload Automation testēšanu visās savās Nexus ierīcēs.

Rakšanās AOSP ir lielisks veids, kā gūt jaunus atklājumus par Android, un šoreiz mēs esam saskārušies ar kaut ko diezgan jautru. Kādu laiku, lietotāji ir ziņojuši ka tehnoloģiju vietne TheVerge.com nodrošināja lēnu veiktspēju mobilajās ierīcēs.

Tagad viņiem jāsaka, ka pēc manas pieredzes viņu vietņu veiktspēja laika gaitā ir uzlabojusies. Turklāt nav tā, it kā citās vietnēs (tostarp mūsu vietnēs) nebūtu problēmu, pie kurām mēs varētu censties strādāt, tomēr man šķita diezgan uzjautrinoši, ka oficiālo darba slodzes etalonu kopu, Google nolēma izmantot The Verge savā testēšanā.


Android darba slodzes automatizācija

Darba slodzes automatizācija (WA) ir ietvars, ko izstrādājis ARM veiktspējas datu apkopošanai Android ierīcēs, izpildot daudzu atkārtojamu darba slodžu komplektu. Google salīdzina veiktspēju savās ierīcēs, veicot daudzas no šīm slodzes pārbaudēm un apkopojot kopsavilkumu par enerģijas patēriņu, ko viņi pēc tam importē izklājlapā, lai redzētu, kā viņu optimizācijas ir uzlabojušas veiktspēju laiks. Uzņēmums izvēlas un izvēlas, kuras lietotnes iekļaut savā testa komplektā, taču kopumā tās aprobežojas ar lielāko daļu populāro Google lietotņu. Tā ir tā darbības būtība, taču mēs parādīsim pierādījumus no pirmkoda un aprakstīsim testu komplektus, lai jūs varētu iegūt labāku priekšstatu par to, kādus automatizētos testus Google veic, lai novērtētu sniegumu.

AOSP ietvaros ir a veltīts direktorijs uz darba slodzes automatizācijas testiem. Testēšanai izmantotās lietotnes ir definētas defs.sh, un parasti ietilpst vienā no divām kategorijām: noklusējuma, iepriekš instalēta Google lietotne vai trešās puses tīmekļa pārlūkprogramma. Viena etalona lietotne izceļas uz pārējo fona, un tā ir com.BrueComputing.SunTemple/com.epicgames.ue4.GameActivity kas, manuprāt, attiecas uz BrueBench ST apskatnieks etalons, kura pamatā ir 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'

Šīs darbības tiek palaistas, izmantojot ADB komandrindu ar tālāk norādīto Systrace opcijas lietotņu veiktspējas mērīšanai:

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

Jo īpaši Chrome lietotne tiek palaista ar karodziņu, lai ielādētu The Verge:

Kas attiecas uz to, kāpēc šķiet, ka tests atšķiras volantis (Nexus 9), es neesmu īsti pārliecināts. Jebkurā gadījumā attiecībā uz to, kādus testus šī Chrome darbība ar The-Verge faktiski iziet, mēs varam noteikt, apskatot darba slodzes automatizācijas testu avota kodu.


Testa komplekti

Pirmkārt, tur ir systemapps.sh tests, kas, kā norāda Google, darbojas šādi:

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

Tālāk ir nesenfling.sh tests, kas darbojas šādi:

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

Un tad ir chromefling.sh, kas pārbauda Chrome veiktspēju diezgan vienkārši:

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

Vēl viens uzjautrinošs pārbaudījums Workload Automation komplektā, lai gan tas nav saistīts ar The Verge, ir youtube.sh veiktspējas tests, kas mēra 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

Visbeidzot, katrs no šiem testiem tiek izmantots, lai noteiktu reālās pasaules enerģijas patēriņu, veicot tos noteiktu laiku, kā noteikts 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.

Pēc tam Google var apkopot šos datus, izmantojot pwrsummary.sh un importējiet tos izklājlapā:

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

Šie visi ir diezgan izplatīti reālās pasaules lietotāja interfeisa veiktspējas testi, kas atšķiras no tiem, ko jūs varētu redzēt mūsu pašu pārbaude. Šķiet, ka The Verge sākumlapas ielādes izmaiņas, atverot Chrome, bija diezgan nesenas, jo pirms pagājušā gada Google šo testu laikā atvēra tikai jaunu cilni pārlūkā Chrome. Ir veiktas izmaiņas 2015. gada 28. maijs tomēr ieviesa The Verge izmantošanu, pārbaudot pārlūku Chrome. Lai cik uzjautrinoši tas būtu, Google, veicot darba slodzes automatizāciju, izmanto The Verge no visām vietām Pārbaudot, ņemiet vērā, ka tas nenozīmē, ka The Verge ir vissliktākais tīmekļa likumpārkāpējs sniegumu.

Faktiski tā nav, jo daudzas citas tīmekļa lapas cieš no viduvējas veiktspējas, jo arvien vairāk tiek izplatītas reklāmas, lai kompensētu reklāmu bloķētāju pieaugumu. Patiešām, visticamāk, lēmums izmantot The Verge bija vienkārši ērts, ņemot vērā tehnoloģiju gudrs ir vidusmēra Google darbinieks, un daudzu entuziastu vidū joks par The Verge tīmekļa lapu sniegumu.