Maschinennahe Datenprofilerstellungstools

Im Hintergrund nutzt Rational Developer for Power Systems Software Performance Advisor eine Reihe maschinennaher Datenprofilerstellungstools auf Ihrer AIX-/POWER Linux-Maschine. Diese Tools umfassen tprof, oprofile, procstack, ps, IBM Debug-Engine und Compilerumsetzungsberichte.

tprof

Unter dem Betriebssystem AIX dient das Dienstprogramm tprof als Hauptquelle der maschinennahen Profilerstellungsdaten. Mithilfe von tprof wird bestimmt, wo in Ihrer Anwendung Prozessorausführungszeit verbraucht wird.

Das Dienstprogramm tprof arbeitet wie folgt. Alle 10 Millisekunden erfasst tprof den Punkt, der gerade in der binären ausführbaren Datei Ihrer Anwendung ausgeführt wird. Jeder erfasste Punkt wird als "Sekundenschritt" bezeichnet. Die Verteilung dieser Sekundenschritte über den Lebenszyklus Ihrer Anwendungsausführung gibt ungefähr an, wie viel Prozessorzeit an verschiedenen Positionen in der Anwendung verbraucht wurde.

Die mit tprof erhaltenen maschinennahen Profilerstellungsdaten werden von einer Reihe von Sichten verwendet. Der Hot-Spot-Browser verwendet die Daten, um die Rangfolge von Funktionen mit hohem Zeitverbrauch in Ihrer Anwendung anzuzeigen. Die Leistungsquellenanzeigefunktion und die Gliederungsansicht verwenden die Daten zur Bereitstellung der Sekundenschrittwerte, die in Quellcodezeilen oder -abschnitten angezeigt werden. Der Browser für den Hot-Spot-Vergleich verwendet die Daten, um Sekundenschrittwerte für den Vergleich zu erhalten.

Ausführliche Informationen zum AIX-Dienstprogramm tprof finden Sie im IBM AIX Information Center auf der Website für den Befehl tprof.

procstack

Unter dem Betriebssystem AIX wird das Dienstprogramm procstack zur Profilerstellung für die aufrufenden und aufgerufenen Routinen von Funktionen verwendet. Jede Sekunde lokalisiert procstack die Funktion, die gerade in Ihrer Anwendung ausgeführt wird, und traversiert deren Aufrufpfad, um die Funktionskette zu bestimmen, die zum Erreichen der Funktion, die gerade ausgeführt wird, verwendet wurde. Der Aufrufpfad wird den gesamten Weg bis zurück zur Funktion main() der Anwendung traversiert. Diese Methodenaufrufinformationen werden zusammengesetzt und vom Aufrufbrowser verwendet.

Das Dienstprogramm procstack stellt jede Stichprobenaufrufkette zum Aufbau des Aufrufbrowsers bereit. Da die Informationen nicht in einem Aufrufdiagramm zusammengefasst werden, trifft das Problem möglicherweise falsche Pfade beim Aufrufbrowser, der auf dem AIX-Dienstprogramm procstack basiert, im Gegensatz zum Linux-Dienstprogramm oprofile nicht zu.

Ausführliche Informationen zum AIX-Dienstprogramm procstack finden Sie im IBM AIX Information Center auf der Website für den Befehl procstack.

oprofile

Unter dem Betriebssystem Linux erfüllt das Dienstprogramm oprofile denselben Zweck wie tprof unter AIX, das als Hauptquelle der maschinennahen Profildaten dient. Das Dienstprogramm oprofile arbeitet auf dieselbe Art und Weise wie tprof unter AIX. Die verwendete Stichprobenfrequenz beträgt jedoch einmal alle 150.000 Prozessorzyklen. Auf einem 3,5-GHz-Prozessor würde dies einer Häufigkeit von einmal alle 43 Mikrosekunden entsprechen.

Ähnlich wie bei tprof unter AIX werden die Daten von oprofile unter Linux vom Hot-Spot-Browser, von der Leistungsquellenanzeigefunktion, von der Gliederungssicht und vom Browser für den Hot-Spot-Vergleich verwendet.

Unter dem Betriebssystem Linux erstellt das Dienstprogramm oprofile auch die Aufrufbeziehung zwischen Funktionen. Diese Informationen werden vom Aufrufbrowser zum Anzeigen von Aufrufpfadinformationen für jede Funktion verwendet.

oprofile führt die Aufrufpfadtraversierung mit einer Häufigkeit von einmal alle 43 Mikrosekunden häufiger als procstack unter AIX aus. Aufgrund dieser höheren Häufigkeit der Stichprobenentnahme sowie aufgrund von Einschränkungen in oprofile wird der Aufrufpfad jedoch zurück zu einer maximalen Tiefe von 2 aufrufenden Routinen traversiert. Darüber hinaus fasst oprofile diese Aufrufinformationen statt in einer Aufrufbaumstruktur in einem Aufrufdiagramm zusammen. Eine wesentliche Auswirkung der Verwendung eines Diagramms anstelle einer Baumstruktur besteht darin, dass in Diagrammen möglicherweise Pfade oder Rekursionen angezeigt werden, die im Programm nicht wirklich vorhanden sind. Grund für das Vorhandensein dieses Merkmals ist, dass Diagramme Informationen zusammenfassen, was zum Datenverlust führen kann. Dieses Phänomen entspricht dem in Statistiken, bei denen ein bestimmtes Volumen an Informationen verloren geht, wenn nur ein Durchschnittswert aus einer Gruppe von Zahlen beibehalten wird. Informationen wie die Verteilung der Gruppe von Zahlen werden nicht beibehalten. Im Kontext von Aufrufinformationen, bei denen ein Knoten (eine Funktion/Methode) mehr als einmal in einer Aufrufbaumstruktur erscheinen kann, werden diese mehrfach vorhandenen Knoten in einem Aufrufdiagramm in einem einzigen Knoten zusammengefasst, was den Verlust eines bestimmten Volumens an Informationen zur Folge hat.

Wegen dieses Merkmals sollte der Benutzer beachten, dass in einem Aufrufbrowser, der auf dem Linux-Dienstprogramm oprofile basiert, derartige möglicherweise falsche Pfade vorhanden sind. Beachten Sie, dass dieses Problem möglicherweise falscher Pfade beim Aufrufbrowser, der auf dem AIX-Dienstprogramm procstack basiert, nicht zutrifft, da bei ihm keine Informationen zusammengefasst werden.

Ausführliche Informationen zum Linux-Dienstprogramm oprofile finden Sie auf der Website zu OProfile.

ps

Das Dienstprogramm ps wird sowohl unter dem Betriebssystem AIX als auch unter dem Betriebssystem Linux verwendet, um Informationen zu Prozessen bereitzustellen, die während der Profilerstellung für Ihre Anwendung auf Ihrer Maschine ausgeführt werden. Anhand dieser Informationen wird festgestellt, welche Prozesse zu Ihrer Anwendung gehören, wenn es sich bei Ihrer Anwendung um eine Anwendung mit mehreren Prozessen handelt oder die Anwendung über ein UNIX-Shell-Script gestartet wird. Darüber hinaus werden Basisinformationen zu jedem Prozess bereitgestellt, wie Name des Prozesses, Argumente und übergeordneter Prozess. Dieses Informationen werden vom Hot-Spot-Browser zum Anzeigen von Prozessinformationen verwendet.

Ausführliche Informationen zum AIX-Dienstprogramm ps finden Sie im IBM AIX Information Center auf der Website für den Befehl ps.

IBM Debug-Engine

Eine Komponente der IBM Debug-Engine wird sowohl auf dem Betriebssystem AIX als auch auf dem Betriebssystem Linux zum Extrahieren von Debuggerinformationen aus der binären ausführbaren Datei Ihrer Anwendung verwendet. Sie dient z. B. zum Zuordnen von Positionen in ausführbarem Code zu Quellendateien und -zeilen. Diese Zuordnungsinformationen werden von der Leistungsquellenanzeigefunktion und der Gliederungssicht bei der Anzeige von Prozentsätzen und Sekundenschrittwerten neben Quellcodezeilen oder Quellcodeblöcken Ihres Anwendungscodes verwendet.

IBM XL-Compilerumsetzungsberichte

Die Sicht Empfehlungen korreliert Profilerstellungsdaten aus verschiedenen Quellen (wie die zuvor genannten), um relevante Muster zu finden. Eine der Hauptquellen, aus der diese Daten stammen, sind Compilerumsetzungsberichte des IBM XL-Compilers. Wenn Ihre Anwendung mit dem IBM XL C/C++-Compiler (XL C/C++ V11.1 oder höher) kompiliert wird, kann der Compiler Informationen zur Analyse Ihres Anwendungscodes dokumentieren, wie z. B. erfolgreiche und nicht erfolgreiche Optimierungsversuche für Ihren Quellcode. Beispielsweise dokumentiert der Compiler Versuche, Funktionen (oder Methoden) zu integrieren, sowie deren erfolgreiche Ausführung oder deren Fehlschlagen. Der Compiler dokumentiert auch, welche Kompilierungsflags für jede Quellcodedatei wirksam waren. Diese Informationen werden zur Bereitstellung von Empfehlungen in der Sicht 'Empfehlungen' verwendet.

Bei älteren Versionen des IBM XL-Compilers, die keine Compilerumsetzungsberichte bereitstellen (älter als V11.1), werden derartige Informationen stattdessen aus der Standardbuildausgabe des Compilers extrahiert. Demzufolge muss der Benutzer seine Anwendung bereinigen und erstellen, bevor derartige Informationen erfasst werden können. Das Volumen der auf diese Art und Weise erfassten Informationen ist nicht so umfangreich wie das aus den XL-Compilerumsetzungsberichten, sodass weniger Empfehlungen in der Sicht Empfehlungen angezeigt werden.

GCC-Compilerumsetzungsinformationen

Es werden noch keine Compilerumsetzungsberichte vom GCC-Compiler bereitgestellt. Um Informationen für die Verwendung in der Sicht Empfehlungen vom Compiler zu erhalten, werden diese Informationen aus der Standardbuildausgabe des Compilers extrahiert. Demzufolge muss der Benutzer seine Anwendung bereinigen und erstellen, bevor derartige Informationen erfasst werden können. Die Einschränkungen, die die Sicht 'Empfehlungen' betreffen, sind ähnlich wie die bei älteren XL-Compilern, die keine Umsetzungsberichte bereitstellen.


Feedback