Modalità Prestazioni fisse

Rilasciato: Android 11 (livello API 30)

I dispositivi Android possono modificare dinamicamente la frequenza di clock in base al carico del sistema. Questo comportamento è utile per il risparmio energetico durante l'utilizzo, ma può rendere difficile ottenere dati sul rendimento affidabili. Se stai cercando di determinare la velocità di esecuzione di un frammento di codice per la prevenzione della regressione o se un'ottimizzazione è ripetibile, i risultati non saranno affidabili se non vengono testati a velocità di clock fisse. Con i clock fissi, puoi eseguire test A/B accurati del rendimento senza che le modifiche alla frequenza della CPU siano un fattore.

La modalità Prestazioni fisse imposta i clock della CPU e della GPU con un limite superiore e inferiore. Sui dispositivi più moderni, il limite superiore e inferiore verrà impostato sullo stesso punto, eliminando la varianza. Questo punto operativo della CPU/GPU è specifico per il dispositivo. La modalità Prestazioni fisse non produce il rendimento massimo del dispositivo, ma è un punto operativo inferiore e più sostenibile. Sebbene il punto operativo possa essere mantenuto per un periodo di tempo limitato, non può essere mantenuto indefinitamente. La modalità Prestazioni non disattiva altri comportamenti di rendimento dinamico, come la selezione dei core. Per questo motivo, ti consigliamo di eseguire il carico di lavoro più volte e di confrontare solo le esecuzioni che utilizzano lo stesso core.

Puoi attivare la modalità Prestazioni fisse con il seguente comando ADB:

adb shell cmd power set-fixed-performance-mode-enabled [true|false]

Un dispositivo in esecuzione in modalità Prestazioni fisse può comunque surriscaldarsi perché la modalità non lo porta a uno stato termicamente sostenibile. Per questo motivo, ti consigliamo quanto segue per le esecuzioni di benchmark:

  • Attendi che il dispositivo torni a uno stato termicamente sostenibile prima di iniziare l'esecuzione.
  • Monitora lo stato termico del dispositivo durante i test per distinguere l'impatto del codice di benchmark dagli eventi termici.