suorittimen käytön mittaaminen mobiililaitteissa

jos olet joskus halunnut mitata mobiilisovelluksen tai pelin suorittimen käyttöä ja olet jumissa, Lue lisää, miten tämä voidaan saavuttaa.

minkä tahansa sovelluksen tai pelin perustavoite on tarjota käyttäjälle hieno kokemus. Peleissä kehyksiä sekunnissa on hyvä mittari tälle. Kun pelisi ei pysty tarjoamaan hyvää kokemusta, olet luonnollisesti utelias resurssien käytöstä järjestelmässäsi. Se voisi todennäköisesti olla, että peli on pullonkaula joko CPU / GPU tai muistin kaistanleveys. Nämä kolme perusaluetta ovat ensimmäinen pysäkki, kun halutaan tunnistaa suorituskykyyn liittyviä kysymyksiä. Katsotaanpa, miten mitata suorittimen käyttöä sekä Android-että iOS-laitteissa.

määritelmät

mikä on suorittimen kuormitus?
ennen kuin voimme keskustella suorittimen käytön mittaustavoista, on tärkeää tietää, mitä tarkoitamme määrittelyllä suorittimen kuormitus. Suorittimen kuormitus mittaa suorittimen tekemän työn määrää kahden näytteenottovälin välillä. Nykyaikaisissa laitteissa on moniydinsuorittimet, jotka voivat toimia eri taajuuksilla riippuen suoritinta käyttävän ohjelmiston laskennallisesta tarpeesta. Tämän seurauksena pienemmällä taajuudella täyteen ladattu suoritin voi silti ottaa käyttöjärjestelmältä vastaan enemmän töitä, jos taajuutta kasvatetaan.

keskeinen havainto on, että suorittimen kuormitus riippuu suorittimen toimintapisteestä. Suoritin, joka on 100% ladattu 500 Mhz on vain 50% ladattu, jos taajuus nostetaan 1GHz. On siis tarpeen normalisoida suorittimen kuormitus suorittimen maksimitoimintataajuudelle.

SUORITINKUORMAA saa sekä Androidille että iOS: lle monin eri tavoin. Suorittimen kuormitus voi olla yli 100%. Esimerkiksi iOS-laitteessa, jossa on 4 ydintä, CPU-kuormitus voi nousta jopa 400%: iin (100%: n kuormitus kullekin CPU-ytimelle).

mikä on normalisoitu suoritinkäyttö?
kun edellä mainittu suorittimen kuormitusmittari lasketaan uudelleen käyttäen kunkin suorittimen ytimen Maksimitoimintapistettä, saadaan normalisoitu suorittimen käyttö. Tiedän, että tämä on hieman monimutkainen, joten minulla on esimerkki, joka selittää tämän alla,

tarkastellaan seuraavaa skenaariota laitteella, joka on neliytiminen CPU

  • CPU kuormitus, koska app-50%
  • ydinten lukumäärä, jotka ovat verkossa – 2 pois 4
  • maksimi toimintapiste CPU ydinten – 1 GHz
  • niiden kahden ytimen toimintapisteet, jotka olivat – 500 MHz

normalisoitu suoritinkäyttö lasketaan seuraavasti,

  • suurin käytettävissä oleva CPU syklit-4 * 1 GHz-4 GHz
  • käytettävissä CPU syklit, kun app oli käynnissä-500 Mhz * 2 = 1 GHz
  • % kaikista PROSESSORISYKLEISTÄ, jotka olivat käytettävissä näytteenoton aikana-1Ghz/4Ghz = 25% tai 0.25
  • normalisoitu suoritinkäyttö– 50% * (0.25) = 12.5%

kun käytät profilointityökalua, on aina hyödyllistä kysyä tämä kysymys. Mittaanko normalisoitua suorittimen käyttöä? Se on tärkeää, koska kun suorittimen käyttö normalisoidaan, sitä voidaan verrata kahden laitteen välillä. Suorittimen kuormitus ei sovellu helppoihin vertailuihin.

nyt kun olemme ymmärtäneet suorittimen kuormituksen määritelmät, tarkastellaan joitakin eri tapoja, joilla voimme mitata tätä Androidissa ja iOS: ssä

Android
kehittäjänä, on monia tapoja, joilla voit mitata suorittimen käyttöä Androidissa sovelluksessasi tai pelissäsi.

“Top” – komento
helpoin tapa saada nopeasti ote sovellusten suorittimen käytöstä on käyttää “top” – komentoa. Android perustuu Linuxiin,sen mukana tulee joitakin komentorivin herkkuja myös Linuxissa.

jos sinulla on ADB-pääsy laitteeseen, voit suorittaa seuraavan kaltaisen komennon tarkastellaksesi suorittimen käyttöä,

komento ADB shell top-m 5-d 1 tuottaa alla olevan kaltaisen tuloksen:

ABD Shell-screen

yllä näkyy, että paketti com.kiloo.subwa + kulutti 142% suorittimesta. On syytä huomata jälleen, että tämä on CPU kuormitus ja ei normalisoitu. Tästä huolimatta, voit silti käyttää tätä numeroa samalla laitteella saadaksesi käsityksen suorittimen käytöstä. Tämä menetelmä on myös hyödyllinen suorittimen käytön saamiseksi millä tahansa laitteella käynnissä olevalla sovelluksella.

Android-profiloija
jos sinulla on pääsy sovelluksen lähdekoodiin, voit käyttää Android Studio-profiloijaa saadaksesi tarkat suorittimen Käyttömittarit. Voit seurata virallista android dokumentaatio täällä käyttää CPU Profiler Android Studio.

GameBench tools
GameBench tools tarjoaa helpoimman mahdollisen tavan hakea normalisoitu suoritinkäyttö Android-laitteella mille tahansa sovellukselle tai pelille, vaikka et olisi Kehittäjä. Suorittimen käytön lisäksi työkalut raportoivat myös suorittimen ytimen tilan (oliko suoritinydin verkossa) ja myös niiden taajuudet. Esimerkiksi esimerkkikaavio suorittimen Ydintaajuuksille näyttää alla,

yllä oleva kaavio näyttää liikkuvan piirisarjan, jossa on 8-ytiminen suoritin ja yhdellä silmäyksellä näet, että Suorittimen taajuus kellotettiin ylös ensimmäiset 25 sekuntia tai niin ja sitten Android OS päätti kellottaa kaikki ytimet alemmille taajuuksille. Tässä tapauksessa profiloitu sovellus latasi resursseja levyltä ja sen seurauksena joutui käyttämään kaikkia ytimiä korkeammalla taajuudella 25 sekunnin ajan. Jos haluat kokeilla suorittimen käyttöä mobiililaitteellasi, Rekisteröidy GameBench Pro-kokeiluun alla ja käy nopeasti.

ota yhteyttä

iOS
jos olet iOS-kehittäjä, helpoin tapa mitata suorittimen käyttöä on käyttää Xcode-työkalusarjaa.

olemme havainneet seuraavien Applen työkalujen olevan erityisen hyödyllisiä:

  1. Xcode Debug Gauges
  2. Instruments
    1. Time Profiler
    2. Activity Monitor

Xcode Debug-Mittarit
jos sinulla on pääsy iOS-sovelluksen lähdekoodiin, Debug-mittarit ovat nopea ja helppo tapa saada sovelluksen resurssien kulutus. Lue lisätietoja Vianetsintämittareiden käytöstä täältä. Kaikki mitä sinun tarvitsee tehdä, on käynnistää sovellus liitetyn laitteen saada erittäin hyödyllistä tietoa resurssien käyttöä. Huomaa, että vain CPU kuormitus ilmoitetaan iOS (ei normalisoitu).

instrumentit
joskus tarvitaan tarkempia suorittimen Profilointitietoja ja tässä instrumentit voivat auttaa. Välineet on pari eri välineitä, jotka voivat auttaa mittaamaan suorituskykyä sovelluksen.

Aikaprofiloija
aikaprofilointilaite voi suorittaa matalaäänisiä, aikaperusteisia näytteenottoja järjestelmän suorittimilla kulkevista prosesseista. On olemassa pari eri näkemyksiä tämän välineen, jota voidaan käyttää. SUORITINSTRATEGIAN käyttönäkymää voidaan käyttää ydinkäytön vertailuun tiettyinä ajanjaksoina. Voit tarkastella työmäärä kunkin ydin laitteen ja paikalla odottamattomia käyttäytymistä. Threads strategy-näkymän avulla voidaan tarkastella sovelluksen kierteiden käyttöä työtä suoritettaessa. On syytä huomata, että lähdekoodia tarvitaan pullonkaulojen ymmärtämiseen.

Aktiivisuusmonitori
aktiivisuusmonitori voi antaa hyvän kuntomittarin sovelluksen profiloitumisesta. Tämä laite voi näyttää suorittimen ja muistin käyttö Kaikki sovellukset käynnissä laitteessa. Tämä on hyödyllistä, jos haluat olla pitkäaikainen testi ja mitata suorituskyvyn parametrit app/peli.

GameBench Tools
työkalujemme avulla voit mitata sovelluksesi suorittimen käyttöä, vaikka sinulla ei olisi pääsyä lähdekoodiin. Tämä on erityisen hyödyllistä, jos haluat profiloida julkaisuehdokkaan ilman debug-tietoja. Myös, työkalumme avulla voit mitata suorittimen käyttöä windows PC, joka voi olla erittäin hyödyllinen, koska edellä mainitut tavat käyttää Xcode ja välineet toimivat vain Mac, joka toimii OSX.

 Ydintaajuuskaavio

yksi tärkeä huomio tässä on se, että GAMEBENCHIN raportoima suorittimen käyttö vaihtelee ydinten lukumäärän mukaan. Jokainen ydin saa käyttää 100% ja siten kuusiytimisessä järjestelmässä suorittimen Maksimikuorma voi nousta 600%: iin.

tässä on tärkeä huomioida se, että Gamebenchin raportoima suorittimen käyttö vaihtelee ydinten lukumäärän perusteella. Jokainen ydin saa käyttää 100% ja siten kuusiytimisessä järjestelmässä suorittimen Maksimikuorma voi nousta 600%: iin.

mitä kannattaa etsiä?

iOS
korkean suorittimen kuormituksen jatkuvia arvoja on tarkasteltava tarkemmin (ymmärtää, mitä näytöllä tapahtui käyttäen kuvakaappauksia kontekstista), koska tämä todennäköisesti johtaa lisääntyneeseen akun tyhjenemiseen. Nykyaikaisen suorittimen toimintatavan vuoksi suorittimen kuormituksen kasvu yleensä laukaisee suorittimen siirtymään seuraavaksi korkeammalle toimintataajuudelle. Siirtyminen seuraavaan toimintapisteeseen johtanee pienempään suorittimen kuormitusarvoon. Jos sovellus lataa suoritinta jatkuvasti, käyttöjärjestelmä jatkaa toimintapisteen kasvattamista, kunnes se saavuttaa maksimiarvon. Tämä ei ole toivottavaa käytöstä ja se on tutkittava.

kannattaa katsoa myös suorittimen Käyttöarvoja, jotka ovat yli 25% sallitusta maksimista. Joten 6 core järjestelmä, mikä tahansa jatkuva CPU kuormitus yli 150% yleensä viittaa ongelma ja saatat haluta käyttää Time Profiler väline tutkia tätä tarkemmin.

lyhyet purskeet suuresta suorittimen kuormituksesta ovat hienoja.

Android
tämä riippuu testauksessa käytettävän laitteen ytimien määrästä. Neliytimisessä järjestelmässä yli 25%: n arvo tarkoittaisi, että yksi ydin on täysin hyödynnetty sovellukseen ja sen seurauksena sitä pidettäisiin suurena SUORITINKÄYTTÖNÄ, vaikka tämä on lyhyissä purskeissa hienoa. Jatkuva suorittimen käyttö > 25% vaatii lisätutkimuksia.

kaikki sovelluksessa käytetyt viestiketjut tulee “nimetä”, jotta annettuja tietoja voidaan käyttää parhaalla mahdollisella tavalla. On aina hyvä tarkistaa, kuluttaako jokin “kevyistä” langoista odottamatta enemmän SUORITINSYKLEJÄ

mitä seuraavaksi?

jos olet kiinnostunut oppimaan lisää GameBench Pro Toolsin keräämistä mittareista, löydät useita blogikirjoituksia aiheesta alta.

Suoritusmittarit Blogit

Leave a Reply