měření využití CPU v mobilních zařízeních

pokud jste někdy chtěli měřit využití CPU mobilní aplikace nebo hry a jste zaseknutí, přečtěte si, jak toho lze dosáhnout.

základním cílem každé aplikace nebo hry je poskytnout uživateli skvělý zážitek. U her je to dobré měřítko snímků za sekundu. Když vaše hra není schopna poskytnout dobrý zážitek, jste přirozeně zvědaví na využití zdrojů ve vašem systému. Je pravděpodobné, že hra je omezena buď CPU/ GPU nebo šířkou pásma paměti. Tyto tři základní oblasti jsou první zastávkou při hledání problémů s výkonem. Podívejme se, jak měřit využití procesoru v zařízeních Android i iOS.

definice

co je zatížení procesoru?
než budeme moci diskutovat o metodách měření využití CPU, je důležité vědět, co máme na mysli definicí zatížení CPU. Zatížení CPU měří množství práce provedené CPU mezi dvěma intervaly vzorkování. Moderní zařízení mají vícejádrové procesory, které mohou pracovat na různých frekvencích v závislosti na výpočetní potřebě softwaru pomocí CPU. Výsledkem je, že procesor, který je plně načten na nižší frekvenci, může stále přijímat více úloh z operačního systému, pokud je frekvence zvýšena.

klíčovým pozorováním je skutečnost, že zatížení CPU závisí na provozním bodě CPU. CPU, který je 100% načten na 500 Mhz, bude načten pouze 50%, pokud se frekvence zvýší na 1GHz. Je tedy třeba normalizovat zatížení procesoru na maximální provozní frekvenci CPU.

zatížení CPU lze získat pro Android i iOS různými způsoby. Zatížení CPU může být více než 100%. Například v zařízení iOS se 4 jádry může zatížení procesoru dosáhnout až 400% (100% zatížení pro každé jádro CPU).

co je normalizované využití CPU?
když je metrika zatížení CPU, jak je uvedeno výše, znovu vypočtena pomocí maximálního pracovního bodu každého jádra CPU, dostaneme normalizované využití CPU. Vím, že je to trochu složité, takže mám příklad, který to vysvětluje níže,

uvažujme následující scénář na zařízení, které má čtyřjádrový procesor

  • zatížení CPU kvůli aplikaci-50%
  • počet jader, které jsou online – 2 ze 4
  • Maximální provozní bod jader CPU – 1 GHz
  • Provozní body dvou jader, které byly zapnuté – 500 MHz

normalizované využití CPU se vypočítá následovně,

  • maximální dostupné cykly CPU-4 * 1 GHz-4 GHz
  • dostupné cykly CPU, když aplikace byl spuštěn-500 Mhz * 2 = 1 GHz
  • procento celkových cyklů CPU dostupných během vzorkování-1Ghz / 4Ghz = 25% nebo 0.25
  • normalizované využití CPU– 50% * (0.25) = 12.5%

pokud používáte jakýkoli profilovací nástroj, je vždy užitečné položit tuto otázku. Jsem měření normalizované využití CPU? Je to důležité, protože když je využití procesoru normalizováno, lze jej porovnat na dvou zařízeních. Zatížení CPU není vhodné pro snadné srovnání.

Nyní, když jsme pochopili definice zatížení CPU, podívejme se na některé z různých způsobů, jak to můžeme měřit v Android a iOS

Android
jako vývojář existuje mnoho způsobů, jak můžete měřit využití CPU v Androidu pro vaši aplikaci nebo hru.

příkaz ” Top “
nejjednodušší způsob, jak rychle získat popisovač využití procesoru aplikací, je použít příkaz” top”. Android je založen na Linuxu, přichází s některými dobrotami příkazového řádku dostupnými také v Linuxu.

pokud máte ADB přístup k zařízení, můžete spustit příkaz, jako je následující, abyste se podívali na využití CPU,

příkaz adb shell top – m 5-d 1 produkuje výsledek jako níže:

ABD Shell-screen

výše, můžete vidět, že balíček com.kiloo.subwa + spotřeboval 142% CPU. Stojí za zmínku, že se jedná o zatížení procesoru a není normalizováno. Toto číslo však můžete stále používat na stejném zařízení, abyste pochopili využití procesoru. Tato metoda je také užitečná pro využití CPU v jakékoli aplikaci běžící na zařízení.

Android Profiler
pokud máte přístup ke zdrojovému kódu aplikace, můžete pomocí Android Studio profiler získat podrobné metriky využití CPU. Můžete sledovat oficiální dokumentaci android Zde používat Profiler CPU v Android Studio.

nástroje GameBench
nástroje GameBench poskytují nejjednodušší možný způsob, jak získat normalizované využití procesoru v zařízení Android pro jakoukoli aplikaci nebo hru, i když nejste vývojář. Kromě využití CPU nástroje také hlásí stavy jádra CPU (zda bylo jádro CPU online) a také jejich frekvence. Například příklad grafu pro CPU jádrové frekvence vypadá níže,

výše uvedený graf ukazuje mobilní čipovou sadu s 8 jádrovým procesorem a na první pohled můžete vidět, že frekvence CPU byla taktována na prvních 25 sekund nebo tak, a pak se Android OS rozhodl hodiny všech jader na nižší frekvence. V tomto případě profilovaná aplikace načítala zdroje z disku a v důsledku toho musela všechna jádra provozovat na vyšší frekvenci po dobu 25 sekund. Pokud byste chtěli vyzkoušet využití procesoru pro vaše mobilní zařízení, Zaregistrujte se na GameBench pro zkušební níže a mají rychlý go.

kontaktujte nás

iOS
pokud jste vývojář iOS, nejjednodušší způsob, jak měřit využití procesoru, je pomocí sady nástrojů Xcode.

zjistili jsme, že následující nástroje Apple jsou zvláště užitečné:

  1. Xcode ladicí měřidla
  2. nástroje
    1. Časový Profiler
    2. Monitor aktivity

měřidla ladění Xcode
pokud máte přístup ke zdrojovému kódu aplikace pro iOS, pak jsou měřidla ladění rychlým a snadným způsobem, jak získat spotřebu zdrojů vaší aplikace. Další podrobnosti o používání měřidel ladění naleznete zde. Vše, co musíte udělat, je spustit aplikaci na připojeném zařízení, abyste získali velmi užitečné informace o využití zdrojů. Vezměte prosím na vědomí, že v systému iOS je hlášeno pouze zatížení procesoru (není normalizováno).

nástroje
někdy potřebujete přístup k podrobnějším informacím o profilování CPU a zde mohou nástroje pomoci. Nástroje mají několik různých nástrojů, které mohou pomoci s měřením výkonu vaší aplikace.

Časový Profiler
nástroj time profiler může provádět vzorkování procesů běžících na procesorech systému s nízkou režií a časem. V tomto nástroji je několik různých pohledů, které lze použít. Zobrazení využití strategie CPU lze použít k porovnání využití jádra v daných časových obdobích. Mohli byste zobrazit pracovní zátěž na každém jádru zařízení a zjistit jakékoli neočekávané chování. Zobrazení strategie threads lze použít ke zkoumání používání vláken vaší aplikace při provádění práce. Stojí za zmínku, že zdrojový kód je potřebný k pochopení úzkých míst.

Monitor aktivity
monitor aktivity může poskytnout dobrý zdravotní indikátor profilované aplikace. Tento nástroj může ukázat využití procesoru a paměti všech aplikací spuštěných v zařízení. To je užitečné, pokud chcete mít dlouhodobý test a měřit parametry výkonu pro aplikaci / hru.

nástroje GameBench
naše nástroje vám umožňují měřit využití procesoru pro vaši aplikaci, i když nemáte přístup ke zdrojovému kódu. To je zvláště užitečné, pokud chcete profilovat kandidáta na vydání bez jakýchkoli informací o ladění. Naše nástroje vám také umožňují měřit využití procesoru z počítače se systémem windows, což může být velmi užitečné, protože výše uvedené způsoby použití Xcode a nástrojů fungují pouze na počítači Mac, který provozuje OSX.

základní frekvenční graf

jedním důležitým bodem, který je třeba poznamenat, je, že využití procesoru hlášené GameBench se liší v závislosti na počtu jader. Každé jádro může používat 100%, a tak pro šestijádrový systém se maximální zatížení procesoru může dostat na 600%.

jedním důležitým bodem, který je třeba poznamenat, je, že využití procesoru hlášené společností GameBench se liší v závislosti na počtu jader. Každé jádro může používat 100%, a tak pro šestijádrový systém se maximální zatížení procesoru může dostat na 600%.

co byste měli hledat?

iOS
trvalé hodnoty vysokého zatížení procesoru je třeba pečlivě sledovat (pochopit, co se děje na obrazovce pomocí screenshotů pro kontext), protože to s největší pravděpodobností povede ke zvýšenému vybití baterie. Vzhledem k tomu, jak moderní CPU pracuje, zvýšení zatížení CPU obvykle způsobí, že CPU přejde na další vyšší provozní frekvenci. Přechod na další operační bod by měl mít za následek nižší hodnotu zatížení procesoru. Pokud aplikace důsledně načítá procesor, Operační systém nadále zvyšuje provozní bod, dokud nedosáhne maximální hodnoty. To není žádoucí chování a mělo by být vyšetřeno.

měli byste se také podívat na hodnoty využití CPU, které jsou více než 25% povoleného maxima. Takže v 6 jádrovém systému jakékoli trvalé zatížení CPU více než 150% obvykle poukazuje na problém a možná budete chtít použít nástroj Time Profiler, abyste to podrobněji prozkoumali.

krátké výbuchy vysokého zatížení CPU jsou v pořádku.

Android
to závisí na počtu jader v zařízení použitém pro testování. U čtyřjádrového systému by hodnota vyšší než 25% znamenala, že jedno jádro bylo plně využito pro aplikaci a v důsledku toho by bylo považováno za vysoké využití CPU, i když je to v krátkých dávkách v pořádku. Konzistentní využití CPU > 25% potřebuje další vyšetřování.

všechna vlákna použitá v aplikaci by měla být “pojmenována”, aby bylo možné co nejlépe využít poskytnuté informace. Vždy je dobré zkontrolovat, zda některý z” lehkých ” vláken neočekávaně spotřebovává více cyklů CPU

co dál?

pokud máte zájem dozvědět se více o metrikách shromážděných nástroji GameBench Pro, najdete níže několik blogových příspěvků na toto téma.

Výkonnostní Metriky Blogy

Leave a Reply