MISURAZIONE DELL’UTILIZZO DELLA CPU NEI DISPOSITIVI MOBILI

Se hai mai desiderato misurare l’utilizzo della CPU di un’app o di un gioco mobile e sei bloccato, continua a leggere per scoprire come questo può essere raggiunto.

L’obiettivo fondamentale di qualsiasi applicazione o gioco è quello di fornire una grande esperienza per l’utente. Per i giochi, fotogrammi al secondo è una buona misura di questo. Quando il tuo gioco non è in grado di fornire una buona esperienza, sei naturalmente curioso dell’utilizzo delle risorse nel tuo sistema. Probabilmente potrebbe essere che il gioco sia strozzato dalla CPU / GPU o dalla larghezza di banda della memoria. Queste tre aree fondamentali sono la prima tappa quando si cerca di identificare i problemi di prestazioni. Diamo un’occhiata a come misurare l’utilizzo della CPU in entrambi i dispositivi Android e iOS.

Definizioni

Che cos’è il carico della CPU?
Prima di poter discutere i metodi di misurazione dell’utilizzo della CPU, è importante sapere cosa intendiamo con la definizione di carico della CPU. Il carico della CPU misura la quantità di lavoro svolto da una CPU tra due intervalli di campionamento. I dispositivi moderni hanno CPU multi-core che possono operare a frequenze diverse a seconda delle necessità computazionali del software che utilizza la CPU. Di conseguenza, una CPU completamente caricata a una frequenza inferiore può ancora accettare più lavori dal sistema operativo se la frequenza viene aumentata.

Un’osservazione chiave da fare è il fatto che il carico della CPU dipende dal punto operativo della CPU. Una CPU caricata al 100% a 500 Mhz sarà caricata solo al 50% se la frequenza viene aumentata a 1 GHz. Quindi è necessario normalizzare il carico della CPU alla massima frequenza operativa della CPU.

Carico della CPU può essere ottenuto sia per Android e iOS in una varietà di modi. Il carico della CPU può essere superiore al 100%. Ad esempio in un dispositivo iOS con 4 core, il carico della CPU può arrivare fino al 400% (carico del 100% per ciascun core della CPU).

Qual è l’utilizzo della CPU normalizzato?
Quando la metrica di carico della CPU come menzionato sopra viene ricalcolata utilizzando il punto operativo massimo di ciascun core della CPU, otteniamo un utilizzo della CPU normalizzato. So che questo è un po ‘ complesso, quindi ho un esempio che spiega questa qui sotto,

consideriamo il seguente scenario su un dispositivo dotato di una CPU Quad-Core

  • il Carico della CPU a causa di app – 50%
  • Numero di core che sono on – line- 2 su 4
  • Massimo punto di Funzionamento della CPU Core da 1 GHz
  • punti Operativi dei due nuclei che erano 500 MHz

normalizzato l’Utilizzo della CPU è calcolato come segue,

  • Massima Disponibile Cicli di CPU – 4 * 1 GHz – 4 GHz
  • Disponibile Cicli di CPU quando l’app era in esecuzione – 500 Mhz * 2 = 1 GHz
  • Percentuale dei cicli totali della CPU disponibili durante il campionamento – 1GHz/4GHz = 25% o 0.25
  • Utilizzo della CPU normalizzato– 50% * (0.25) = 12.5%

Quando si utilizza uno strumento di profilazione, è sempre utile porre questa domanda. Sto misurando l’utilizzo della CPU normalizzato? È importante perché quando l’utilizzo della CPU è normalizzato, può essere confrontato su due dispositivi. Il carico della CPU non si presta a facili confronti.

Ora che abbiamo capito le definizioni di Carico della CPU, diamo un’occhiata ad alcuni dei diversi modi in cui possiamo misurare questo in Android e iOS

Android
Come sviluppatore, ci sono molti modi con cui è possibile misurare l’Utilizzo della CPU in Android per le app o un gioco.

Comando” Top ”
Il modo più semplice per ottenere rapidamente una maniglia sull’utilizzo della CPU delle app è utilizzare il comando “top”. Android è basato su Linux, viene fornito con alcune delle chicche della riga di comando disponibili anche in Linux.

Se avete ADB accesso al dispositivo, è possibile eseguire un comando come il seguente guardare l’Utilizzo della CPU,

Il comando ADB shell top -m 5 -d 1 produce un risultato come il seguente:

ABD Shell - screen

di cui Sopra, si può vedere che il pacchetto com.kiloo.subwa + ha consumato il 142% della CPU. Vale la pena notare ancora una volta che questo è il carico della CPU e non è normalizzato. Tuttavia, è ancora possibile utilizzare questo numero sullo stesso dispositivo per ottenere una comprensione dell’utilizzo della CPU. Questo metodo è utile anche per ottenere l’utilizzo della CPU su qualsiasi app in esecuzione sul dispositivo.

Android Profiler
Se si ha accesso al codice sorgente dell’App, è possibile utilizzare Android Studio profiler per ottenere metriche dettagliate sull’utilizzo della CPU. È possibile seguire la documentazione ufficiale di Android qui per utilizzare il Profiler CPU in Android Studio.

Strumenti GameBench
Gli strumenti GameBench forniscono il modo più semplice per recuperare l’utilizzo della CPU normalizzato su un dispositivo Android per qualsiasi app o gioco, anche se non sei lo sviluppatore. Oltre all’utilizzo della CPU, gli strumenti riportano anche gli stati del core della CPU (se un core della CPU era online) e anche le loro frequenze. Ad esempio, un grafico di esempio per le frequenze core della CPU è simile al di sotto,

Il grafico sopra mostra un chipset mobile con una CPU a 8 core e con uno sguardo puoi vedere che la frequenza della CPU è stata cronometrata per i primi 25 secondi o giù di lì e poi il sistema operativo Android ha deciso In questo caso, l’app profilata stava caricando risorse dal disco e, di conseguenza, doveva far funzionare tutti i core a una frequenza più alta per 25 secondi. Se vuoi provare l’utilizzo della CPU per il tuo dispositivo mobile, iscriviti a una prova di GameBench Pro qui sotto e fai un salto veloce.

Entra in contatto

iOS
Se sei uno sviluppatore iOS, il modo più semplice per misurare l’utilizzo della CPU è utilizzando il set di strumenti Xcode.

Abbiamo trovato le seguenti Apple strumenti per essere particolarmente utile:

  1. Xcode Debug Calibri
  2. Strumenti
    1. Tempo Profiler
    2. monitoraggio Attività

Xcode Debug Calibri
Se si ha accesso al codice sorgente di iOS app, quindi il Debug Calibri sono un modo facile e veloce per ottenere il consumo di risorse dell’applicazione. Si prega di trovare maggiori dettagli sull’utilizzo degli indicatori di debug qui. Tutto quello che dovete fare è lanciare l’applicazione sul dispositivo collegato per ottenere informazioni molto utili sugli usi delle risorse. Si prega di notare che solo il carico della CPU è riportato in iOS (non normalizzato).

Instruments
A volte, è necessario accedere a informazioni di profilazione della CPU più dettagliate ed è qui che gli Strumenti possono aiutare. Gli strumenti hanno un paio di strumenti diversi che possono aiutare a misurare le prestazioni della tua app.

Time Profiler
Lo strumento time profiler è in grado di eseguire campionamenti basati sul tempo a basso sovraccarico di processi in esecuzione sulle CPU del sistema. Ci sono un paio di punti di vista diversi in questo strumento che può essere utilizzato. La vista di utilizzo della strategia della CPU può essere utilizzata per confrontare l’utilizzo del core in determinati periodi di tempo. È possibile visualizzare il carico di lavoro su ciascun core del dispositivo e individuare eventuali comportamenti imprevisti. La vista strategia thread può essere utilizzata per esaminare l’utilizzo dei thread da parte dell’app durante l’esecuzione del lavoro. Vale la pena notare che il codice sorgente è necessario per comprendere i colli di bottiglia.

Activity Monitor
Il activity monitor può fornire un indicatore di buona salute dell’app profilata. Questo strumento può mostrare l’utilizzo della CPU e della memoria di tutte le app in esecuzione sul dispositivo. Questo è utile se si desidera avere un test di lunga durata e misurare i parametri di prestazione per l’app/gioco.

GameBench Tools
I nostri strumenti ti consentono di misurare l’utilizzo della CPU per la tua app anche se non hai accesso al codice sorgente. Ciò è particolarmente utile se si desidera profilare una release candidate senza alcuna informazione di debug. Inoltre, i nostri strumenti consentono di misurare l’utilizzo della CPU da un PC Windows che può essere molto utile come i modi di cui sopra di utilizzare Xcode e strumenti funzionano solo su un Mac che esegue OSX.

 Core Grafico di frequenza

Un punto importante da notare qui è che l’utilizzo della CPU riportato da GameBench varia in base al numero di core. Ogni core è autorizzato a utilizzare 100% e quindi per un sistema a sei core, il carico massimo della CPU può arrivare a 600%.

Un punto importante da notare qui è che l’utilizzo della CPU riportato da GameBench varia in base al numero di core. Ogni core è autorizzato a utilizzare 100% e quindi per un sistema a sei core, il carico massimo della CPU può arrivare a 600%.

Cosa dovresti cercare?

iOS
I valori sostenuti di carico elevato della CPU devono essere esaminati più attentamente (Capire cosa stava succedendo sullo schermo usando gli screenshot per il contesto) poiché molto probabilmente ciò porterà ad un aumento del consumo della batteria. A causa del modo in cui funziona la CPU moderna, un aumento del carico della CPU di solito innesca la CPU per passare alla successiva frequenza operativa più alta. La transizione al punto operativo successivo dovrebbe comportare un valore di carico della CPU inferiore. Se un’applicazione sta caricando costantemente la CPU, il sistema operativo continua ad aumentare il punto operativo fino a raggiungere il valore massimo. Questo non è un comportamento desiderabile e dovrebbe essere studiato.

Si dovrebbe anche guardare i valori di utilizzo della CPU che sono più del 25% del massimo consentito. Quindi, in un sistema a 6 core, qualsiasi carico della CPU sostenuto superiore al 150% di solito punta a un problema e potresti voler utilizzare lo strumento Time Profiler per indagare in modo più dettagliato.

Brevi raffiche di carico elevato della CPU vanno bene.

Android
Questo dipende dal numero di core nel dispositivo utilizzato per il test. Su un sistema quad-core, un valore superiore al 25% significherebbe che un core è stato completamente utilizzato per l’applicazione e di conseguenza sarebbe considerato un elevato utilizzo della CPU, anche se questo va bene in brevi intervalli. L’utilizzo costante della CPU > 25% richiede ulteriori indagini.

Tutti i thread utilizzati nell’app devono essere “nominati” per utilizzare le informazioni fornite nel miglior modo possibile. È sempre una buona idea verificare se uno qualsiasi dei thread “leggeri” sta consumando inaspettatamente più cicli della CPU

Cosa succederà?

Se sei interessato a saperne di più sulle metriche raccolte da GameBench Pro tools, puoi trovare diversi post sul blog sull’argomento qui sotto.

Performance Metrics Blogs

Leave a Reply