Více než meme: Google používá TheVerge.com k porovnání zařízení Nexus

click fraud protection

Zdá se, že Google načte domovskou stránku The Verge při provádění testování automatizace pracovní zátěže na všech svých zařízeních Nexus.

Koupání v AOSP je skvělý způsob, jak dělat nové objevy o Androidu, a tentokrát jsme narazili na něco docela veselého. Po určitou dobu, uživatelé nahlásili že technologický web TheVerge.com poskytoval pomalý výkon na mobilních zařízeních.

Nyní jim ke cti, že podle mých zkušeností se výkon jejich webových stránek postupem času zlepšoval. Navíc to není tak, že by jiné weby (včetně našich vlastních) neměly problémy, na kterých bychom se mohli snažit pracovat, ale přesto mi přišlo docela zábavné, že Oficiální sadu benchmarků pracovní zátěže se Google rozhodl při testování použít The Verge.


Android Workload Automation

Automatizace pracovní zátěže (WA) je rámec vyvinutý společností PAŽE pro shromažďování údajů o výkonu na zařízeních Android prováděním sady mnoha opakovatelných úloh. Google porovnává výkon na svých zařízeních tím, že provádí mnoho z těchto testů zátěže a shromažďuje jejich souhrn spotřebu energie, kterou pak importují do tabulky, aby viděli, jak jejich optimalizace zlepšily výkon čas. Společnost vybírá a vybírá, které aplikace zahrne do své testovací sady, ale obecně se omezuje na většinu populárních aplikací Google. To je podstata toho, jak to funguje, ale ukážeme si důkazy ze zdrojového kódu a popíšeme test sady podrobněji, abyste si mohli udělat lepší obrázek o tom, jaké automatizované testy Google měří výkon.

V rámci AOSP existuje vyhrazený adresář na testy automatizace pracovní zátěže. Aplikace, které se používají k testování, jsou definovány v defs.sha obecně spadají do jedné ze dvou kategorií: výchozí, předinstalovaná aplikace Google nebo webový prohlížeč třetí strany. Jedna benchmarková aplikace vyčnívá z ostatních, a to je com.BrueComputing.SunTemple/com.epicgames.ue4.GameActivity což předpokládám odkazuje na Recenzent BrueBench ST benchmark, který je založen na 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'

Tyto aktivity se spouštějí pomocí příkazového řádku ADB s následujícím Systrace možnosti měření výkonu aplikace:

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

Zejména aplikace Chrome se spouští s příznakem pro načtení The Verge:

Pokud jde o to, proč se zdá, že se test liší pro volantis (Nexus 9), nejsem si úplně jistý. Každopádně, jakými testy tato aktivita Chrome s The-Verge skutečně prochází, můžeme určit pohledem na zdrojový kód testů automatizace pracovní zátěže.


Testovací soupravy

Nejprve je tu systemapps.sh test, o kterém Google uvádí, že funguje takto:

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

Dále je tu recentfling.sh test, který funguje takto:

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

A pak je tu chromefling.sh, který testuje výkon Chrome poměrně jednoduše:

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

Dalším zábavným testem v sadě Workload Automation, i když nesouvisející s The Verge, je youtube.sh výkonnostní test, který měří 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

Nakonec se každý z těchto testů používá k měření skutečné spotřeby energie tím, že jimi procházíte po určitou dobu, jak je definováno 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 pak může tato data shromažďovat pomocí pwrsummary.sh a importujte je do tabulky:

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

To vše jsou docela běžné testy výkonu uživatelského rozhraní v reálném světě, ne nepodobné druhům, které byste viděli naše vlastní testování. Zdá se, že změna načítání domovské stránky The Verge při otevírání Chromu byla poměrně nedávná, protože před loňským rokem Google během těchto testů otevřel pouze novou kartu v Chromu. Provedena změna 28. května 2015 zavedlo použití The Verge při testování Chrome. Jak zábavné je, že Google používá The Verge všech míst při provádění Workload Automation testování, mějte na paměti, že to neznamená, že The Verge je nejhorším pachatelem na webu výkon.

Ve skutečnosti zdaleka ne, protože mnoho jiných webových stránek trpí průměrným výkonem díky šíření stále více reklam, které kompenzují nárůst blokátorů reklam. Ve skutečnosti je velmi pravděpodobné, že rozhodnutí použít The Verge bylo pouze z pohodlí, vzhledem k tomu, jak důvtipný průměrný Googler a vnitřní vtip mezi mnoha nadšenci ohledně webové stránky The Verge výkon.