A volte indicato come profilazione, l’analisi delle prestazioni in relazione all’ingegneria del software è semplicemente il processo di valutazione del funzionamento di un particolare programma software. Questo processo normalmente inizia con il modo in cui il programma viene caricato e cosa succede quando viene eseguito ogni passaggio nell’utilizzo del programma. L’obiettivo dell’analisi delle prestazioni è garantire che il programma software funzioni con la massima efficienza e identificare e correggere eventuali problemi che potrebbero influire negativamente su tale efficienza.
L’analisi delle prestazioni aiuta inoltre l’ingegnere a regolare i componenti in modo da aiutare il programma a utilizzare al meglio le risorse disponibili. Valutando le esecuzioni in tempo reale, è possibile determinare se è possibile fare qualcosa per accelerare un’attività o modificare la quantità di memoria necessaria per eseguire l’attività senza influire negativamente sulla funzione generale del software. L’obiettivo finale è un programma che funzioni senza intoppi, rapidamente e funzioni ogni volta che viene avviata un’attività.
L’analisi delle prestazioni è un tipo di analisi dinamica del programma, o DPA. DPA si concentra su cosa succede quando un programma è attivamente in esecuzione, incluso come vengono utilizzate le risorse e in quale ordine. Questo è diverso dall’analisi del codice statico, che tende a concentrarsi maggiormente su come è scritto il codice e su quanto sia logica la successione dei comandi. Tuttavia, entrambi i tipi di analisi sono elementi comuni di valutazione e perfezionamento del software e delle funzionalità del software.
La storia dell’analisi dei programmi risale ai primi anni dell’informatica. Durante lo sviluppo dei primi “cervelli elettronici” degli anni ‘1940, furono messi in atto vari metodi per testare l’efficienza di ciascuna funzione che un dato sistema era in grado di svolgere. Man mano che la tecnologia continuava ad avanzare, la metodologia per valutare il livello di prestazioni del software in esecuzione su vari sistemi è stata perfezionata e in qualche modo standardizzata. Oggi, gli architetti di sistema e gli autori di programmi software utilizzano l’analisi del programma per identificare i punti di forza e di debolezza inerenti a una determinata versione di un programma e creare correzioni per eventuali problemi. I dati raccolti dall’analisi delle prestazioni aiutano a prevenire la comparsa di quegli stessi problemi nelle versioni successive del programma.
L’effettivo processo di analisi delle prestazioni può ancora essere eseguito mediante revisione manuale durante il funzionamento attivo di un programma o essere completato automaticamente compilando i dati utilizzando un profiler automatizzato. In entrambi i casi, vengono acquisite informazioni che consentono sia a uno scrittore di software che a un architetto di sistema di determinare cosa deve essere fatto affinché il programma funzioni alla massima efficienza su un determinato sistema o rete. L’analisi delle prestazioni non è un’attività che viene eseguita una volta e poi considerata conclusa. Non è insolito che gli amministratori di sistema eseguano un’analisi delle prestazioni su base ricorrente, poiché gli aggiornamenti ad altri programmi e le modifiche all’hardware potrebbero influire sull’efficienza del programma sottoposto all’analisi.