www.wikidata.de-de.nina.az
Als Profiler werden Programmierwerkzeuge bezeichnet die das Laufzeitverhalten von Software analysieren Es gibt unterschiedliche Problembereiche in der Softwareentwicklung die durch ineffiziente Programmierung ausgelost werden Ein Profiler hilft dem Entwickler durch Analyse und Vergleich von laufenden Programmen die Problembereiche aufzudecken Daraus kann man Massnahmen zur strukturellen und algorithmischen Verbesserung des Quellcodes ableiten Inhaltsverzeichnis 1 Bereiche des Profilings 1 1 Messen von Geschwindigkeit 1 2 Speichernutzung 1 3 Nebenlaufigkeit 2 Technische Aspekte des Profilings 2 1 Statistische Auswertung 2 2 Instrumentierung 3 Profil Abbilder 4 Software 5 Siehe auch 6 EinzelnachweiseBereiche des Profilings BearbeitenMessen von Geschwindigkeit Bearbeiten Die haufigste Anwendung eines Profilers ist das Zahlen und Messen der Aufrufe und Durchlaufe von Funktionen Dies ermoglicht es dem Programmierer herauszufinden wo sich eine Optimierung des Programms lohnt Eine Optimierung von Funktionen die nicht haufig verwendet werden ist der Gesamtleistung des Programms nicht sonderlich zutraglich und erschwert in der Regel die Wartbarkeit des Quellcodes Deshalb wird das Hauptaugenmerk auf Funktionen gelegt die oft aufgerufen werden und in der Summe der Aufrufe viel Zeit benotigen Speichernutzung Bearbeiten Ein weiterer Aspekt ist die Verfolgung von Speichernutzung durch ein Programm Der Profiler soll dabei helfen den Ge und Verbrauch von Arbeitsspeicher zu optimieren und ggf Fehler in der Programmierung aufzudecken durch die ungenutzte Speicherbereiche nicht freigeben werden Speicherleck Nebenlaufigkeit Bearbeiten Moderne Profiler bieten die Moglichkeit nebenlaufige Prozesse Threads in ihrem Lebenszyklus grafisch zum Beispiel als Balken oder Netzdiagramm darzustellen Diese optische Aufbereitung soll einem Programmierer helfen das Laufzeitverhalten von nebenlaufigen Prozessen besser zu interpretieren und Fehler durch Verklemmung Deadlock aufzudecken Technische Aspekte des Profilings BearbeitenDas Profiling eines Programms selbst verursacht in der Regel eine Beeinflussung der zu analysierenden Anwendung Ublicherweise verlangsamt der Profiler selbst die Ausfuhrungsgeschwindigkeit Ausserdem entsteht bei Analysen von grossen Programmen eine sehr grosse Menge an Daten Es gibt unterschiedliche Techniken beim Profiling die eine solche Beeinflussung ggf unter Verlust der Analysegenauigkeit verschieden stark auspragen Ausserdem ermoglichen die Profiler es zu bestimmen welche Programmteile uberhaupt analysiert werden sollen Statistische Auswertung Bearbeiten Mittels der statistischen Auswertung wird die Programmanalyse nicht exakt mit jedem Programmbefehl einer Messung unterzogen Es wird vielmehr in einem bestimmten zeitlichen Zyklus die Laufzeit gemessen Dieses Verfahren nennt man auch Sampling Der Profiler greift damit in bestimmten Taktzyklenabstanden in den Programmablauf ein und ermittelt damit stichprobenartig welche Programmteile seit dem letzten Zyklus aufgerufen wurden Daraus wird ein statistischer Mittelwert errechnet der in das Ergebnis der Analyse einfliesst Bei der statistischen Auswertung wird das laufende Programm nicht verandert Instrumentierung Bearbeiten Mit der Instrumentierung werden vom Anwender bestimmte oder gar alle Programmabschnitte zum Beispiel wahrend der Laufzeit mit Analysecode erweitert Das heisst es werden in das Programm Unterbrechungs Marken Interrupts oder Programmcode eingefugt die dem Profiler wahrend des Programmlaufs signalisieren dass der Abschnitt gerade abgearbeitet wird Die Zeit zwischen den Aufrufen der Analysepunkte sowie das Speicherverhalten als Differenz zu einem vorherigen Durchlauf konnen wieder als Laufzeitwerte in das Ergebnis der Analyse einfliessen Die Instrumentierung verandert also das Programm um die Analysedaten zu berechnen Es gibt verschiedene Typen der Instrumentierung Manuelle Instrumentierung durch Erweiterung des Quelltextes durch Befehle die die Laufzeit berechnen z B mit der Programmierschnittstelle des Application Response Measurement Standards Durch Compiler Optionen erweiterte Programme die dadurch Profiler Marken erhalten 1 Nachtragliche Veranderung von kompilierten Programmen durch Einfugen von Marken Laufzeit Instrumentierung Dabei bleibt das gespeicherte Programm unangetastet Die Profiler Marken werden vor dem Ausfuhren im Arbeitsspeicher hinzugefugt Profil Abbilder BearbeitenZiel einer Programmanalyse ist ein effizientes Laufzeitverhalten der Anwendung Damit ein Vergleich auch objektiv gelingt ermoglichen viele Profiler die gesammelten Analysedaten zu speichern und zu vergleichen Somit konnen Programmanderungen in ihrem Laufzeitverhalten verglichen und bewertet werden Die Profiler zeigen die Vergleichswerte ublicherweise relativ als Prozentangaben oder als absolute Werte an Da aber ein Profiler das Laufzeitverhalten wahrend der Analyse immer selbst beeintrachtigt durfen solche Vergleichswerte nicht als tatsachliche Veranderung betrachtet werden Software Bearbeitengprof PerfTools Der Prozess Scheduler Slurm besitzt ebenfalls Profiling Moglichkeiten ProDelphi ist ein Profiler fur Delphi Objekt Pascal ProLaza ist ein Profiler fur Lazarus Objekt Pascal CODESYS Profiler ist fur IEC 61131 3 Code z B Strukturierter Text entwickelt mit CODESYSSiehe auch BearbeitenStatische Code Analyse Style CheckerEinzelnachweise Bearbeiten gcc g finstrument functions Compiler Option gcc gnu org abgerufen am 22 Januar 2016 Abgerufen von https de wikipedia org w index php title Profiler Programmierung amp oldid 211772051