Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Performance Analysis Tool, misurare le prestazioni

Uno strumento per effettuare il profiling e misurare le prestazioni delle nostre applicazioni
Uno strumento per effettuare il profiling e misurare le prestazioni delle nostre applicazioni
Link copiato negli appunti

Quando si parla di performance il termine successivo è misurare, non basta infatti che il software "sembri" veloce, ma che anche i numeri lo confermino, avere degli strumenti adeguati diventa quindi essenziale per capire gli eventuali colli di bottiglia.

Le performance non sono solo importanti per migliorare la user experience, è abbastanza ovvio che un'applicazione che non risponde agli input, che crasha o sia lenta venga considerata una pessima app, ma sono fondamentali per superare i requisiti di pubblicazione nel Martetplace: ad esempio la nostra app deve renderizzare il primo schermo entro 5 secondi dalla partenza, deve rispondere al primo touch entro 20 secondi dallo startup e non deve risultare congelata per più di tre secondi senza mostrare progress bar o altri indicatori; questi sono solo alcuni dei requisiti, vi consigliamo di leggere i Technical Certification Requirements per maggiori dettagli sull'argomento.

Windows Phone Performance Analysis Tool

Il Windows Phone Performance Analysis Tool, è parte del Windows Phone SDK 7.1, ed è uno strumento in grado di misurare, analizzare e quindi migliorare le prestazioni delle nostre app; non è da sottovalutare il fatto che è integrato completamente all'interno di Visual Studio 2010. Consente di valutare i più importanti aspetti di un'applicazione Windows Phone: l'utilizzo della CPU, l'allocazione di memoria, il frame rate, il caricamento delle immagini, gli eventi del garbage collection e l'esecuzione di storyboard (animazioni).

Per iniziare a lavorare con questo strumento dobbiamo aprire da Visual Studio 2010 un'applicazione Windows Phone 7.x, nel nostro caso abbiamo usato l'app chiamata Kind Love (nome in codice LoveMeter) sviluppata dalla nostra società ThinkAhead. Dal menu Debug scegliere Start Windows Phone Performance Analysis.

Figura 30. Start Windows Phone Performance Analysis
(clic per ingrandire)
Start Windows Phone Performance Analysis

Visual Studio 2010 creerà un file con estensione .sap che conterrà tutte le informazioni catturate durante l'esecuzione, e mostrerà la prima schermata del wizard:

Figura 31. Impostazioni delle Performance Analysis
(clic per ingrandire)
Impostazioni delle Performance Analysis

Nella maschera Performance Analsys Settings abbiamo due scelte:

  • Execution, utile per analizzare le prestazioni degli oggetti visuali e le chiamate ai metodi
  • Memory, serve per analizzare l'allocazione degli oggetti e l'utilizzo di texture

A meno di non avere dei problemi sul fronte memoria, la classica scelta sarà Execution; possiamo anche espandere Advanced Settings per scegliere ad esempio se collezionare i dettagli della cache, performance counter dettagliati o gli eventi di oggetti media (immagini o video).

Cliccando Launch Application verrà mostrata la seguente schermata del wizard:

Figura 32. Una sessione di profiling in esecuzione
Una sessione di profiling in esecuzione

A questo punto l'applicazione verrà eseguita sul device o nell'emulatore, in base alle nostre preferenze, e dovremo semplicemente utilizzarla.

Per interrompere la sessione di profilazione è sufficiente cliccare Stop Profiling da Visual Studio 2010 oppure premere il pulsante Back dal primo schermo applicativo. Lo strumento inizierà ad analizzare il log dei dati collezionati:

Figura 33. Analisi in corso dei dati collezionati durante la sessione di profiling
(clic per ingrandire)
Analisi in corso dei dati collezionati durante la sessione di profiling

Al completamento dell'attività di analisi lo strumento mostrerà il risultato della sessione di profilazione in una chiara timeline:

Figura 34. Risultato dell'analisi di una sessione di profilazione
(clic per ingrandire)
Risultato dell'analisi di una sessione di profilazione

Windows Phone Performance Analysis è in grado di mostrare graficamente i seguenti aspetti:

Aspetto Descrizione
Frame Rate Visualizza il numero di "screen redraw" in frame al secondo, questa informazione è disponibile solo in alcuni periodi della timeline, quando l'applicazione aggiorna lo screen
CPU usage % La percentuale di CPU in base al tipo di thread:

Colore Thread Nome Descrizione
Verde User Interface Thread Aggiornamenti dell'interfaccia utente o input di touch
Viola Application Thread Indica un'attività non di user interface, può trattarsi di thread di composition o nostri thread applicativi in background
Grigio System Thread Indica un'attività che non proviene dalla nostra app: il sistema operativo è impegnato in altre attività che influenzano le nostre prestazioni
Bianco Idle Thread Mostra la percentuale disponibile di CPU, più tale percentuale è alta e più la nostra applicazione sarà pronta agli input
Memory usage MB Indica l'allocazione di memoria in megabyte
Storyboards Visualizza con un'icona con la lettera "S" l'evento di uno storyboard, tipicamente è l'inizio di un'animazione:

Colore icona Descrizione
Rossa storyboard CPU-bound
Viola storyboard non CPU-bound
Image loads Visualizza con un'icona con la lettera "I" quando un'immagine viene caricata in memoria
GC Events Visualizza con un'icona con la lettera "G" un'attività del garbage collection

Oltre a queste importantissime informazioni, mostrate in chiara forma grafica, è possibile ottenere maggiori dettagli e suggerimenti su come migliorare eventuali problemi, è sufficiente evidenziare con il mouse la regione di grafico interessata.

Figura 35. Il dettaglio di un'area della timeline
(clic per ingrandire)
Il dettaglio di un'area della timeline

Nella tabella sottostante il grafico potremmo notare diverse righe che rappresentano delle segnalazioni di problemi (icona rossa), warning (icona gialle) o informazioni (icona bianca), nella cella Observation Summary sono contenute le indicazioni per proseguire nell'indagine dei problemi; questa funzionalità è veramente importante ed è, secondo noi, uno dei punti a favore di questo strumento anche a paragone con software di terze parti a pagamento, ricordiamo infatti che l'SDK è gratuito.

Seguendo le istruzioni, in questo caso, si arriva a visualizzare i metodi che utilizzano la maggior percentuale di CPU, lo strumento visualizza sia i metodi di nostra scrittura che quelli del runtime Silverlight.

Figura 36. Il dettaglio dell'utilizzo di CPU dei vari metodi
(clic per ingrandire)
Il dettaglio dell'utilizzo di CPU dei vari metodi

Oltre a tali informazioni è possibile anche scegliere la visualizzazione per Frame, seguita dall'opzione Visual Tree, in questo caso lo strumento visualizza le informazioni relative al tempo di disegno di ogni oggetto presente nel Visual Tree per lo specifico frame (oltre ad altri prezioni dati), cliccando su un elemento si può saltare direttamente alla riga XAML che definisce tale oggetto.

Figura 37. Il dettaglio sulla percentuale del tempo di disegno di ogni elemento del Visual Tree per uno specifico frame
(clic per ingrandire)
Il dettaglio sulla percentuale del tempo di disegno di ogni elemento del Visual Tree per uno specifico frame

Ti consigliamo anche