Recensione di un software di profiling per applicazioni per il .NET Framework.

ANTS Profiler è il software di Redgate per l'analisi delle prestazioni delle applicazioni scritte nei linguaggi supportati dal .NET Framework; con ANTS Profiler è possibile analizzare applicazioni Windows Form, WPF, WF, applicazioni web ASP.NET in IIS 5/7, Windows Services e servizi WCF.

L'attività di profiling consiste nell'analizzare le operazioni eseguite da una applicazione e di registrare quante più informazioni possibili in termini di tempo di esecuzione, memoria allocata, consumo di CPU, accesso al file system, ecc.. in modo da realizzare un report dettagliato e da mettere in evidenza quelle procedure che rallentano l'uso del programma o che si comportano in modo non previsto.

I servizi di profiling di questo software sono molto dettagliati e consentono di analizzare in dettaglio l'uso delle risorse consumate dalle applicazioni anche raggruppate nei principali processi del .NET Framework, in termini di CPU ad esempio è possibile controllare la percentuale impegnata alla gestione del Garbage Collector, nella seguente immagine è rappresentato l'elenco dei counter disponibili:

ANTS Profiler raggiunge un eccellente dettaglio in quanto esegue una profilazione a livello di codice, evidenziando direttamente nella propria interfaccia il codice sorgente e quelle linee che impegnano più risorse:

L'interfaccia è molto chiara e intuitiva, nella parte alta è presente una timeline con un grafico che si valorizza durante l'esecuzione del programma con l'uso della CPU, dei Bytes allocati o della Cache; nella parte centrale viene riepilogato il codice ed il consumo di risorse in tre forme diverse: "ad albero", che evidenzia la gerarchia di chiamate delle singole procedure, a griglia ed in forma grafica.

Il consumo di risorse è evidenziato in termini di tempo o in forma percentuale rispetto al tempo del test, il programma mette subito in risalto quelle procedure più lente rappresentandole con un colore rosso e scrivendo anche la quantità di volte che tale procedura viene eseguita; in questo modo è più facile decidere di ottimizzare quel codice lento e che viene eseguito più volte, incrementando velocemente le prestazioni generali.

L'individuazione dei metodi meno performanti è aiutata dalla renderizzazione a video del codice nella parte bassa dell'interfaccia, le singole porzioni incriminate vengono evidenziate con delle piccole linee rosse vicino alla barra di scorrimento; queste sono cliccabili per raggiungere velocemente il codice.

La rappresentazione in grafico è molto comoda in quanto mette a confronto a colpo d'occhio il consumo di risorse dei vari metodi: l'esempio della precedente immagine è eloquente, nel page_load di una pagina asp.net vengono popolate due liste generiche, una di Guid e l'altra di Int; il grafico mette subito in evidenza che in termini di tempo il 91,4% del tempo della durata di page_load è impegnato con la lista di Guid mentre solo il 6,8% con la lista di Int.

Se si entra nel dettaglio del metodo di popolamento della lista di Guid si può capire che il 70,4% del tempo dell'esecuzione del metodo è impiegato nell'esecuzione del metodo NewGuid, cioè della generazione del vero e proprio valore, solo il restante 13,9% è a carico dell'aggiunta degli elementi nella collezione.

E' possibile restringere il campo d'analisi anche a singole funzioni del software creando una selezione nel grafico, verrà riepilogato solo il codice interessato.

ANTS Profiler ha anche un buon livello di integrazione con Visual Studio 2005/2008, è possibile eseguire un test dell'applicazione corrente direttamente dall'interfaccia ed anche analizzare una specifica porzione di codice saltando la fase di configurazione generica del programma.

La versione PRO del software comprende anche uno specifico profiler per la memoria, durante l'esecuzione di test è possibile realizzare degli snapshot nei vari momenti del ciclo d'uso e confrontare le varie allocazioni di memoria in modo da evidenziare quelle parti del codice che non eseguono una gestione corretta e che possono causare memory leak.

Conclusioni

ANTS Profiler è un software potente, utile e facile da usare; qualora la vostra applicazione non si comporti come dovrebbe o alcune funzioni ne compromettano l'uso o comunque vorrete migliorare le prestazioni generali sarà sufficiente eseguire una profilazione per capire al volo cosa è migliorabile nel vostro codice.

Nel sito di RedGate è possibile trovare ulteriori informazioni, due tutorial video e procedere direttamente all'acquisto.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti