Profiler (Software)

Profiler (Software)

Als Profiler werden Programmierwerkzeuge bezeichnet, die das Laufzeitverhalten von Software analysieren. Es gibt unterschiedliche Problembereiche in der Softwareentwicklung, die durch ineffiziente Programmierung ausgelöst werden. Ein Profiler hilft dem Entwickler durch Analyse und Vergleich von laufenden Programmen die Problembereiche aufzudecken. Daraus kann man Maßnahmen zur strukturellen und algorithmischen Verbesserung des Quellcodes ableiten.

Inhaltsverzeichnis

Bereiche des Profilings

Messen von Geschwindigkeit

Die häufigste Anwendung eines Profilers ist das Zählen und Messen der Aufrufe und Durchläufe von Funktionen. Dies ermöglicht es dem Programmierer herauszufinden, wo sich eine Optimierung des Programms lohnt. Eine Optimierung von Funktionen, die nicht häufig verwendet werden, ist der Gesamtleistung des Programms nicht sonderlich zuträglich 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 benötigen.

Speichernutzung

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).

Nebenläufigkeit

Moderne Profiler bieten die Möglichkeit, nebenläufige Prozesse (Threads) in ihrem Lebenszyklus grafisch (zum Beispiel als Balken- oder Netzdiagramm) darzustellen. Diese optische Aufbereitung soll einem Programmierer helfen, das Laufzeitverhalten von nebenläufigen Prozessen besser zu interpretieren und Fehler durch Verklemmung (Deadlock) aufzudecken.

Technische Aspekte des Profilings

Das Profiling eines Programms selbst verursacht in der Regel eine Beeinflussung der zu analysierenden Anwendung. Üblicherweise verlangsamt der Profiler selbst die Ausführungsgeschwindigkeit. Außerdem entsteht bei Analysen von großen Programmen eine sehr große Menge an Daten. Es gibt unterschiedliche Techniken beim Profiling, die eine solche Beeinflussung, ggf. unter Verlust der Analysegenauigkeit, verschieden stark ausprägen. Außerdem ermöglichen die Profiler es zu bestimmen, welche Programmteile überhaupt analysiert werden sollen.

Statistische Auswertung

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 Taktzyklenabständen in dem 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 einfließt.

Bei der statistischen Auswertung wird das laufende Programm nicht verändert.

Instrumentierung

Mit der Instrumentierung werden vom Anwender bestimmte (oder gar alle) Programmabschnitte (zum Beispiel während der Laufzeit) mit Analysecode erweitert. Das heißt es werden in das Programm Unterbrechungs-Marken (Interrupts) oder Programmcode eingefügt, die dem Profiler während 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) können wieder als Laufzeitwerte in das Ergebnis der Analyse einfließen.

Die Instrumentierung verändert 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
  • Durch Compiler-Optionen erweiterte Programme, die dadurch Profiler-Marken erhalten
  • Nachträgliche Veränderung von compilierten Programmen durch Einfügen von Marken
  • Laufzeit-Instrumentierung: Dabei bleibt das gespeicherte Programm unangetastet. Die Profiler-Marken werden vor dem Ausführen im Arbeitsspeicher hinzugefügt.

Profil-Abbilder

Ziel einer Programmanalyse ist ein effizientes Laufzeitverhalten der Anwendung. Damit ein Vergleich auch objektiv gelingt, ermöglichen viele Profiler die gesammelten Analysedaten zu speichern und zu vergleichen. Somit können Programmänderungen in ihrem Laufzeitverhalten verglichen und bewertet werden. Die Profiler zeigen die Vergleichswerte üblicherweise relativ als Prozentangaben oder als absolute Werte an. Da aber immer ein Profiler das Laufzeitverhalten während der Analyse selbst beeinträchtigt, dürfen solche Vergleichswerte nicht als tatsächliche Veränderung betrachtet werden (Heisenbug).

Siehe auch


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Software development process — Activities and steps Requirements Specification …   Wikipedia

  • Profiler — (englisch wörtlich für „Profilierer“) steht für: Fallanalytiker erstellen Profile von Straftätern Profiler (Programmierung), Programmierwerkzeuge, die das Laufzeitverhalten von Software analysieren Profiler (Fernsehserie), eine amerikanische… …   Deutsch Wikipedia

  • Profiler (Programmierung) — Als Profiler werden Programmierwerkzeuge bezeichnet, die das Laufzeitverhalten von Software analysieren. Es gibt unterschiedliche Problembereiche in der Softwareentwicklung, die durch ineffiziente Programmierung ausgelöst werden. Ein Profiler… …   Deutsch Wikipedia

  • Laser beam profiler — A laser beam profiler captures, displays, and records the spatial intensity profile of a laser beam at a particular plane transverse to the beam propagation path. Since there are many types of lasers ultraviolet, visible, infrared, continuous… …   Wikipedia

  • System profiler — A system profiler is a program that can provide detailed information about the software installed and hardware attached to the computer. In older versions of Apple Computer s Mac OS, this was done by an application called Apple System Profiler.… …   Wikipedia

  • DVD Profiler — 3.5 Developer(s) Invelos Software Stable release 3.7.2 / February 4, 2011 …   Wikipedia

  • Pervasive Software — Pervasive(R) Software Inc. Type Public (NASDAQ: PVSW) Industry Software RDBMS Data Integration Founded …   Wikipedia

  • System Profiler — Infobox Software name = System Profiler caption = System Profiler under Mac OS X 10.5.0 developer = Apple Computer latest release version = 10.5.0 (117) latest release date =October 26 2007 operating system = Mac OS 7.6 Mac OS X genre = system… …   Wikipedia

  • Visual Studio Team System Profiler — коммерческий профайлер (иногда употребляют термин «профилировщик») от корпорации Microsoft, входящий в состав пакета Visual Studio Team System (VSTS) и версии Development Edition среды разработки Visual Studio[1]. Данный инструмент может работать …   Википедия

  • VSTS Profiler — Visual Studio Team System Profiler коммерческий профайлер (иногда употребляют термин «профилировщик») от корпорации Microsoft, входящий в состав пакета Visual Studio Team System (VSTS) и версии Development Edition среды разработки Visual… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”