Test di performance delle applicazioni

Rispondi
Roberto
Amministratore
Messaggi: 160
Iscritto il: 19/12/2009, 19:30

Test di performance delle applicazioni

Messaggio da Roberto »

Come indagare le cause di un problema di performance di un'applicazione?

Durante lo sviluppo di un Software generalmente vengono eseguiti dei test di carico, di stress o di endurance.

Tutti questi test sono in grado di avvertire gli sviluppatori sulla presenza di un problema di performance, problema che può presentarsi sotto diverse forme:
  • tempi di esecuzione peggiorati nel tempo
  • timeout di processi o blocco dell’intero sistema in presenza di un determinato carico di utenti o dopo un certo periodo di tempo dallo start del sistema
Il fatto di eseguire tali test aiuta ad accorgersi del problema in una fase preventiva a quella del passaggio in produzione e permette quindi la possibilità di risolverlo prima che si verifichi direttamente dal cliente.

Ma tali test non fanno altro che allertare che ad esempio il determinato processo X che ci si aspettava impiegasse N unità di tempo ne impiega invece più di N. Oppure avvertono che il sistema sotto test ha generato degli errori di timeout o si è bloccato totalmente o su alcuni processi.

Un tool di monitoring delle performance è uno strumento che ha l’obiettivo di monitorare le performance di un’entità tecnologica, che può essere ad esempio un’infrastruttura, un server, un’applicazione, una pagina web.

Se un programmatore volesse analizzare i tempi di esecuzione di un programma da lui scritto la prima e più semplice operazione che potrebbe fare sarebbe quella di inserire un’istruzione di calcolo dell’ora esatta (con una precisione fino ai millisecondi) all’inizio del suo programma, una di calcolo dell’ora esatta alla fine del programma e una di stampa nei log del tempo di esecuzione ottenuto come sottrazione del primo risultato dal secondo.

Dall’analisi dei log potrebbe estrarre statistiche sui tempi di esecuzione del metodo: quante volte viene eseguito, quanto tempo impiega in media, il suo minimo, il suo massimo, etc...

Tale tecnica viene chiamata profilazione del codice (in inglese conosciuto come "code profiling") ed è proprio il concetto che abbiamo esemplificato: al codice viene aggiunto codice per monitorarlo.
Rispondi