Több, mint egy mém: A Google a TheVerge.com webhelyet használja a Nexus eszközök összehasonlításához

Úgy tűnik, hogy a Google betölti a The Verge kezdőlapját, amikor munkaterhelés-automatizálási tesztet végez az összes Nexus eszközén.

Az AOSP-ben való kutakodás nagyszerű módja annak, hogy új felfedezéseket tegyünk az Androiddal kapcsolatban, és ezúttal valami egészen vidám dologra bukkantunk. Egy ideig, felhasználók jelentették hogy a technológiai weboldal TheVerge.com lassú teljesítményt nyújtott mobil eszközökön.

Becsületükre legyen mondva, hogy webhelyük teljesítménye tapasztalataim szerint idővel javult. Ráadásul nem mintha más oldalakon (beleértve a sajátunkat is) ne lennének olyan problémák, amelyeken törekedhetnénk dolgozni, de ennek ellenére elég mulatságosnak találtam, hogy hivatalos munkaterhelési benchmark készlete alapján a Google úgy döntött, hogy a The Verge-et használja a tesztelés során.


Android Workload Automation

Munkaterhelés automatizálása (WA) egy keretrendszer, amelyet a KAR teljesítményadatok gyűjtésére Android-eszközökön számos megismételhető munkaterhelés végrehajtásával. A Google összehasonlítja az eszközeik teljesítményét azáltal, hogy számos ilyen terhelési tesztet elvégz, és összefoglalja azokat energiafogyasztást, amelyet aztán egy táblázatba importálnak, hogy megnézzék, hogyan javították az optimalizálásuk teljesítményét idő. A vállalat kiválasztja, hogy mely alkalmazásokat vegye fel a tesztcsomagba, de általában a legtöbb népszerű Google-alkalmazásra korlátozódnak. Ez a működésének lényege, de bemutatjuk a forráskódból származó bizonyítékokat, és leírjuk a tesztet részletesebben, így jobb képet kaphat arról, hogy a Google milyen automatizált teszteket mér teljesítmény.

Az AOSP-n belül létezik a dedikált címtár a munkaterhelés-automatizálási tesztekhez. A teszteléshez használt alkalmazások meghatározása a következő helyen található: defs.sh, és általában két kategória valamelyikébe tartoznak: alapértelmezett, előre telepített Google App vagy harmadik féltől származó webböngésző. Egy benchmark alkalmazás kiemelkedik a többi közül, és az com.BrueComputing.SunTemple/com.epicgames.ue4.GameActivity amely feltételezésem szerint arra utal BrueBench ST bíráló benchmark, amely az Unreal Engine 4-en alapul.

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

Ezek a tevékenységek az ADB parancssoron keresztül indulnak el a következőkkel Systrace lehetőségek az alkalmazás teljesítményének mérésére:

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

A Chrome alkalmazás különösen a The Verge betöltésére szolgáló jelzővel indul:

Ami azt illeti, miért tűnik úgy, hogy a teszt különbözik a volantis (Nexus 9), nem vagyok benne egészen biztos. Mindenesetre, hogy ez a Chrome-tevékenység-a-The-Verge valójában milyen teszteken megy keresztül, azt a terhelés-automatizálási tesztek forráskódjából tudjuk megállapítani.


Teszt lakosztályok

Először is ott van a systemapps.sh teszt, amely a Google szerint így működik:

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

Következő, ott van a latestfling.sh teszt, ami így működik:

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

És akkor ott van chromefling.sh, amely meglehetősen egyszerűen teszteli a Chrome teljesítményét:

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

Egy másik szórakoztató teszt a Workload Automation csomagban, bár nem kapcsolódik a The Verge-hez, az youtube.sh teljesítményteszt, amely méri az 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

Végül ezek a tesztek a valós világ energiafelhasználásának mérésére szolgálnak úgy, hogy egy bizonyos ideig végigfutnak rajtuk, amint azt a 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.

A Google ezután gyűjtheti ezeket az adatokat pwrsummary.sh és importálja őket egy táblázatba:

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

Ezek mind meglehetősen gyakori, valós UI teljesítménytesztek, nem különböznek azoktól, amelyeket saját tesztelésünk. Úgy tűnik, hogy a The Verge kezdőlapjának betöltése a Chrome megnyitásakor meglehetősen friss volt, hiszen tavalyelőtt a Google ezeknél a teszteknél csak új lapot nyitott a Chrome-ban. Változás történt 2015. május 28 azonban bevezette a The Verge használatát a Chrome tesztelésekor. Bármennyire is mulatságos, hogy a Google a The Verge-t használja a Workload Automation végrehajtásakor A tesztelés során ne feledje, hogy ez nem jelenti azt, hogy a The Verge a legrosszabb bűnelkövető az interneten teljesítmény.

Valójában távolról sem, mivel sok más weboldal közepes teljesítményt nyújt az egyre több hirdetésnek köszönhetően, amely kompenzálja a reklámblokkolók térnyerését. Valójában a legvalószínűbb, hogy a The Verge használata egyszerűen a kényelem miatt döntött, tekintettel arra, hogy a technológia okos az átlagos Google-alkalmazott, és a The Verge weboldalával kapcsolatban sok rajongó tréfája teljesítmény.