Was ist eine Leistungsanalyse?
Mitunter als Profiling bezeichnet, ist die Leistungsanalyse im Zusammenhang mit der Softwareentwicklung lediglich der Prozess der Bewertung der Funktionsweise eines bestimmten Softwareprogramms. Dieser Prozess beginnt normalerweise damit, wie das Programm geladen wird und was passiert, wenn jeder Schritt bei der Verwendung des Programms ausgeführt wird. Ziel der Leistungsanalyse ist es, sicherzustellen, dass das Softwareprogramm mit optimaler Effizienz arbeitet, und alle Probleme zu identifizieren und zu beheben, die sich negativ auf diese Effizienz auswirken können.
Die Leistungsanalyse hilft dem Ingenieur außerdem, die Komponenten so anzupassen, dass das Programm die verfügbaren Ressourcen optimal nutzt. Durch die Auswertung von Echtzeitausführungen kann festgestellt werden, ob Maßnahmen zur Beschleunigung einer Aufgabe ergriffen werden können oder ob die zum Ausführen der Aufgabe erforderliche Speichermenge geändert werden kann, ohne die Gesamtfunktion der Software zu beeinträchtigen. Das endgültige Ziel ist ein Programm, das reibungslos und schnell ausgeführt wird und jedes Mal funktioniert, wenn eine Aufgabe eingeleitet wird.
Die Leistungsanalyse ist eine Art der dynamischen Programmanalyse oder DPA. DPA konzentriert sich darauf, was passiert, wenn ein Programm aktiv ausgeführt wird, einschließlich wie Ressourcen verwendet werden und in welcher Reihenfolge. Dies unterscheidet sich von der statischen Code-Analyse, bei der es eher darum geht, wie der Code geschrieben wird und wie logisch die Abfolge der Befehle ist. Beide Analysetypen sind jedoch gemeinsame Elemente für die Bewertung und Verfeinerung von Software und Softwarefunktionalität.
Die Geschichte der Programmanalyse reicht bis in die Anfangsjahre des Rechnens zurück. Während der Entwicklung der ersten „elektronischen Gehirne“ der 1940er Jahre wurden verschiedene Methoden eingeführt, um die Effizienz jeder Funktion zu testen, die ein bestimmtes System ausführen konnte. Mit fortschreitender Technologie wurde die Methodik zur Bewertung des Leistungsniveaus von Software, die auf verschiedenen Systemen ausgeführt wird, verfeinert und etwas standardisiert. Heute nutzen Systemarchitekten und Software-Programmierer die Programmanalyse, um die Stärken und Schwächen einer bestimmten Programmversion zu ermitteln und Fehler zu beheben. Die durch die Leistungsanalyse gesammelten Daten tragen dazu bei, zu verhindern, dass dieselben Probleme in späteren Versionen des Programms auftreten.
Der eigentliche Prozess der Leistungsanalyse kann weiterhin durch manuelle Überprüfung während des aktiven Programmbetriebs oder automatisch durch Zusammenstellen von Daten mithilfe eines automatisierten Profilers durchgeführt werden. In beiden Fällen werden Informationen erfasst, mit denen sowohl ein Softwareentwickler als auch ein Systemarchitekt bestimmen können, was zu tun ist, damit das Programm auf einem bestimmten System oder in einem bestimmten Netzwerk mit maximaler Effizienz ausgeführt werden kann. Die Leistungsanalyse ist keine Aufgabe, die einmal ausgeführt und dann als erledigt betrachtet wird. Systemadministratoren führen regelmäßig eine Leistungsanalyse durch, da Aktualisierungen anderer Programme sowie Änderungen an der Hardware möglicherweise die Effizienz des zu analysierenden Programms beeinträchtigen können.