Wat is prestatieanalyse?
Soms ook wel profilering genoemd, is prestatieanalyse in verband met software engineering eenvoudigweg het proces van evalueren hoe een bepaald softwareprogramma functioneert. Dit proces begint normaal met hoe het programma wordt geladen en wat er gebeurt wanneer elke stap in het gebruik van het programma wordt uitgevoerd. Het doel van prestatieanalyse is om ervoor te zorgen dat het softwareprogramma optimaal werkt en om problemen die een negatieve invloed op die efficiëntie kunnen hebben, te identificeren en te corrigeren.
Prestatieanalyse helpt de ingenieur ook om componenten aan te passen op een manier die het programma helpt om de beschikbare middelen optimaal te gebruiken. Door real-time uitvoeringen te evalueren, is het mogelijk om te bepalen of iets kan worden gedaan om een taak te versnellen of om de hoeveelheid geheugen te wijzigen die nodig is om de taak uit te voeren zonder de algemene functie van de software negatief te beïnvloeden. Het uiteindelijke doel is een programma dat soepel en snel werkt en elke keer dat een taak wordt gestart, werkt.
Prestatieanalyse is een type dynamische programma-analyse of DPA. DPA richt zich op wat er gebeurt als een programma actief is, inclusief hoe middelen worden gebruikt en in welke volgorde. Dit verschilt van statische code-analyse, die de neiging heeft zich meer te concentreren op hoe de code wordt geschreven en hoe logisch de opeenvolging van opdrachten is. Beide soorten analyses zijn echter gemeenschappelijke elementen voor het evalueren en verfijnen van software en softwarefunctionaliteit.
De geschiedenis van programma-analyse gaat terug tot de vroegste jaren van computergebruik. Tijdens de ontwikkeling van de eerste 'elektronische hersenen' van de jaren 1940, werden verschillende methoden ingevoerd om de efficiëntie van elke functie te testen die een bepaald systeem kon uitvoeren. Naarmate de technologie zich verder ontwikkelde, werd de methodologie voor het evalueren van het prestatieniveau van software die op verschillende systemen draait verfijnd en werd enigszins gestandaardiseerd. Tegenwoordig maken systeemarchitecten en softwareprogramma-schrijvers gebruik van programma-analyse om sterke en zwakke punten te identificeren die inherent zijn aan een bepaalde release van een programma en oplossingen voor eventuele problemen te maken. De gegevens verzameld door prestatieanalyse helpen voorkomen dat dezelfde problemen in latere releases van het programma verschijnen.
Het daadwerkelijke proces van prestatieanalyse kan nog steeds worden bereikt door handmatige beoordeling tijdens de actieve werking van een programma, of automatisch worden voltooid door gegevens te verzamelen met behulp van een geautomatiseerde profiler. In beide gevallen wordt informatie vastgelegd waarmee een softwareschrijver of een systeemarchitect kan bepalen wat er moet worden gedaan om het programma optimaal te laten werken op een bepaald systeem of netwerk. Prestatieanalyse is geen taak die eenmaal wordt uitgevoerd en vervolgens als voltooid wordt beschouwd. Het is niet ongebruikelijk voor systeembeheerders om een prestatieanalyse op terugkerende basis uit te voeren, omdat updates voor andere programma's en hardwarewijzigingen mogelijk de efficiëntie van het programma dat de analyse ondergaat kunnen beïnvloeden.