Il benchmarking è un modo per ispezionare e monitorare le prestazioni della tua app. Puoi eseguire regolarmente benchmark per analizzare e risolvere i problemi di prestazioni e contribuire a garantire che non vengano introdotte regressioni nelle modifiche recenti.
Android offre due librerie e approcci di benchmarking per l'analisi e testare diversi tipi di situazioni nella tua app: Macrobenchmark e Microbenchmark.
Macrobenchmark
La libreria Macrobenchmark misura le interazioni più estese dell'utente finale, ad esempio l'avvio, l'interazione con l'UI e le animazioni. La biblioteca offre accesso diretto controllo sull'ambiente delle prestazioni che stai testando. Ti consente di controllare la compilazione e di avviare e interrompere l'app per misurare direttamente l'avvio o lo scorrimento dell'app.
La libreria Macrobenchmark inserisce gli eventi e monitora i risultati esternamente creata con i tuoi test. Pertanto, quando scrivi i benchmark, di non chiamare direttamente il codice dell'app, ma di navigare all'interno dell'app come utente.
Microbenchmark
La libreria Microbenchmark ti consente di eseguire il benchmark del codice dell'app direttamente in un ciclo. È progettato per misurare il lavoro della CPU che valuta le prestazioni ottimali, come il codice Just in Time (JIT) e gli accessi al disco memorizzati nella cache, che potresti riscontrare con un loop interno o una funzione hot specifica. La libreria può misurare solo che puoi chiamare direttamente in modo isolato.
Se la tua app deve elaborare una struttura di dati complessa o avere specifiche
ad alta intensità di calcolo, che viene chiamato più volte durante l'esecuzione dell'app,
questi possono essere buoni casi per il benchmarking. Puoi anche misurare parti del
nell'interfaccia utente. Ad esempio, puoi misurare il costo dell'associazione di elementi RecyclerView
, il tempo necessario per gonfiare un layout o l'intensità del passaggio di misurazione e layout della classe View
dal punto di vista delle prestazioni.
Tuttavia, non è possibile misurare in che modo i casi di benchmark contribuiscono alla in generale l'esperienza utente. In alcuni scenari, il benchmarking non ti dice se stai migliorando un collo di bottiglia come il jitter o il tempo di avvio dell'app. Per questo motivo, è fondamentale identificare prima questi colli di bottiglia con Android Profiler. Dopo aver trovato il codice da analizzare e ottimizzare, lo strumento il loop può essere eseguito ripetutamente in modo rapido e semplice per ridurre il rumore i risultati, così puoi concentrarti su un'area da migliorare.
La libreria Microbenchmark genera report solo sulle informazioni relative alla tua app, non sul sistema nel suo complesso. Pertanto, è più adatto per analizzare il rendimento di situazioni specifiche dell'app, non di quelle che potrebbero essere correlate a problemi di sistema complessivi.
Confronto della raccolta di benchmark
Macrobenchmark | Microbenchmark | |
---|---|---|
Versione API | 23 e successive | 14 e versioni successive |
Funzione | Misurare l'accesso di alto livello i punti o le interazioni, come avvio dell'attività scorrere un elenco. | Misura individuale funzioni. |
Ambito | Test out-of-process dell'intero dell'app. | Test in-process del lavoro della CPU. |
Velocità | Velocità di iterazione media. it può superare un minuto. | Velocità di iterazione elevata. Spesso per meno di 10 secondi. |
Monitoraggio | I risultati sono accompagnati da tracce di profilazione. | Campionamento del metodo facoltativo e il tracciamento. |
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Crea profili di riferimento {:#creazione-profile-rules}
- Libreria JankStats
- Panoramica della misurazione del rendimento delle app