Czasami określana jako profilowanie, analiza wydajności w odniesieniu do inżynierii oprogramowania jest po prostu procesem oceny działania określonego programu. Ten proces zwykle rozpoczyna się od tego, jak program się ładuje i co się dzieje, gdy wykonywany jest każdy krok korzystania z programu. Celem analizy wydajności jest upewnienie się, że oprogramowanie działa z optymalną wydajnością oraz identyfikacja i korygowanie wszelkich problemów, które mogą negatywnie wpłynąć na tę wydajność.
Analiza wydajności pomaga również inżynierowi dostosować komponenty w sposób, który pomaga programowi w jak najlepszym wykorzystaniu dostępnych zasobów. Oceniając wykonania w czasie rzeczywistym, można określić, czy można coś zrobić, aby przyspieszyć zadanie lub zmienić ilość pamięci wymaganej do uruchomienia zadania bez negatywnego wpływu na ogólną funkcjonalność oprogramowania. Ostatecznym celem jest program, który działa płynnie, szybko i działa przy każdym zainicjowaniu zadania.
Analiza wydajności to jeden z rodzajów dynamicznej analizy programu lub DPA. DPA skupia się na tym, co dzieje się, gdy program jest aktywnie uruchomiony, w tym na tym, jak wykorzystywane są zasoby i w jakiej kolejności. Różni się to od statycznej analizy kodu, która koncentruje się bardziej na tym, jak kod jest napisany i jak logiczne jest następstwo poleceń. Jednak oba rodzaje analizy są wspólnymi elementami oceny i udoskonalania oprogramowania i funkcjonalności oprogramowania.
Historia analizy programów sięga najwcześniejszych lat informatyki. Podczas opracowywania pierwszych „mózgów elektronicznych” w latach czterdziestych XX wieku wprowadzono różne metody testowania wydajności każdej funkcji, którą dany system był w stanie wykonać. W miarę postępu technologii metodologia oceny poziomu wydajności oprogramowania działającego w różnych systemach została udoskonalona i nieco ustandaryzowana. Obecnie architekci systemów i twórcy oprogramowania wykorzystują analizę programu do identyfikowania mocnych i słabych stron nieodłącznie związanych z danym wydaniem programu i tworzenia poprawek dla wszelkich problemów. Dane zebrane przez analizę wydajności pomagają zapobiegać pojawianiu się tych samych problemów w późniejszych wersjach programu.
Rzeczywisty proces analizy wydajności może być nadal realizowany poprzez ręczne przeglądanie podczas aktywnego działania programu lub może zostać zakończony automatycznie poprzez kompilację danych za pomocą automatycznego profilera. W obu przypadkach przechwytywane są informacje, które pozwalają zarówno autorowi oprogramowania, jak i architektowi systemu określić, co należy zrobić, aby program działał z najwyższą wydajnością w danym systemie lub sieci. Analiza wydajności nie jest zadaniem wykonywanym raz, a następnie uważanym za wykonane. Administratorzy systemu często przeprowadzają analizę wydajności, ponieważ aktualizacje innych programów, a także zmiany sprzętu mogą mieć wpływ na wydajność programu poddawanego analizie.