Bir Meme'den Daha Fazlası: Google, Nexus Cihazlarını Karşılaştırmak için TheVerge.com'u kullanıyor

click fraud protection

Görünüşe göre Google, tüm Nexus cihazlarında İş Yükü Otomasyonu testi gerçekleştirirken The Verge'nin ana sayfasını yüklüyor.

AOSP'de araştırma yapmak, Android hakkında yeni keşifler yapmanın harika bir yoludur ve bu sefer oldukça komik bir şeyle karşılaştık. Belli bir süre için, kullanıcılar bildirdi teknoloji web sitesi TheVerge.com mobil cihazlarda yavaş performans sağladı.

Artık onların kredisine göre, deneyimlerime göre web sitesi performansları zamanla gelişti. Ayrıca, diğer sitelerin (bizimki dahil) üzerinde çalışmaya çalışabileceğimiz sorunları yok gibi görünüyor, ancak yine de bunu oldukça eğlenceli buldum. Google, resmi iş yükü karşılaştırmaları setini kullanarak testlerinde The Verge'ı kullanmaya karar verdi.


Android İş Yükü Otomasyonu

İş Yükü Otomasyonu (WA) tarafından geliştirilen bir çerçevedir. KOL Birçok tekrarlanabilir iş yükünden oluşan bir paket yürüterek Android cihazlarda performans verilerini toplamak için. Google, bu iş yükü testlerinin çoğunu yaparak ve bunların bir özetini toplayarak cihazlarının performansını karşılaştırır. Güç kullanımını, daha sonra optimizasyonlarının performansı nasıl iyileştirdiğini görmek için bir e-tabloya aktarırlar. zaman. Şirket, test paketine hangi uygulamaların dahil edileceğini seçiyor ancak genel olarak kendilerini popüler Google uygulamalarının çoğuyla sınırlıyor. Nasıl çalıştığının özü budur, ancak kaynak kodundaki kanıtları göstereceğiz ve testi açıklayacağız. Google'ın ölçmek için hangi otomatik testleri yaptığına dair daha iyi bir fikir edinebilmeniz için süitleri daha ayrıntılı olarak inceleyin verim.

AOSP içerisinde bir dizin adanmış iş yükü otomasyon testlerine. Test için kullanılan uygulamalar şurada tanımlanmıştır: defs.shve genellikle iki kategoriden birine girer: varsayılan, önceden yüklenmiş Google Uygulaması veya üçüncü taraf web tarayıcısı. Bir kıyaslama uygulaması diğerlerinden öne çıkıyor ve com.BrueComputing.SunTemple/com.epicgames.ue4.GameActivity bununla ilgili olduğunu varsayıyorum BrueBench ST İncelemecisi Unreal Engine 4'ü temel alan kıyaslama.

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

Bu aktiviteler ADB komut satırı aracılığıyla aşağıdakilerle başlatılır: Systrace uygulama performansını ölçme seçenekleri:

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

Özellikle Chrome uygulaması The Verge'ı yüklemek için bir bayrakla başlatılıyor:

Testin neden farklı göründüğüne gelince volantiler (Nexus 9), tam olarak emin değilim. Her neyse, The Verge ile Chrome etkinliğinin gerçekte hangi testlerden geçtiğini, iş yükü otomasyon testlerinin kaynak koduna bakarak belirleyebiliriz.


Test Paketleri

Öncelikle şu var sistemapps.sh Google'ın şu şekilde çalıştığını belirttiği test:

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

Sırada şu var sonfling.sh şu şekilde çalışan test:

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

Ve sonra var chromefling.sh, Chrome'un performansını oldukça basit bir şekilde test eden:

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

İş Yükü Otomasyonu paketindeki bir diğer eğlenceli test, The Verge ile ilgisi olmasa da, youtube.sh UI jak'ını ölçen performans testi

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

Son olarak, bu testlerin her biri, aşağıda tanımlandığı gibi, belirli bir süre boyunca bunlar arasında geçiş yaparak gerçek dünya güç kullanımını ölçmek için kullanılır. 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 daha sonra bu verileri aşağıdakileri kullanarak toplayabilir: pwrsummary.sh ve bunları bir e-tabloya aktarın:

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

Bunların hepsi oldukça yaygın gerçek dünya kullanıcı arayüzü performans testleridir ve göreceğiniz türlerden farklı değildir. kendi testimiz. Görünüşe göre Chrome'u açarken The Verge'in ana sayfasını yükleme değişikliği oldukça yeniydi; geçen yıldan önce Google bu testler sırasında yalnızca Chrome'da yeni bir sekme açıyordu. Yapılan bir değişiklik 28 Mayıs 2015 Ancak Chrome'u test ederken The Verge kullanımını tanıttı. Google'ın İş Yükü Otomasyonu gerçekleştirirken her yerde The Verge'ı kullanması ne kadar eğlenceli olsa da test ediyorsanız bunun The Verge'ın internetteki en kötü suçlu olduğu anlamına gelmediğini unutmayın verim.

Aslında bundan çok uzak, reklam engelleyicilerin yükselişini telafi etmek için giderek daha fazla reklamın çoğalması nedeniyle diğer birçok web sayfası vasat performanstan muzdarip. Gerçekten de, teknolojinin nasıl olduğu göz önüne alındığında, The Verge'ı kullanma kararının sadece kolaylık sağlamaktan kaynaklanmış olması muhtemeldir. Ortalama bir Google çalışanının bilgili olması ve pek çok meraklının The Verge'in web sayfasıyla ilgili içten gelen şakası verim.