Name

Devel::DProf - ein Code-Profiler für Perl


Übersicht

perl5 -d:DProf test.pl


Beschreibung

Das Paket Devel::DProf ist ein Code-Profiler für Perl. Es sammelt Informationen über die Ausführungszeit eines Perl-Skripts und der in diesem Skript enthaltenen Subs. Mit Hilfe dieser Routinen läßt sich bestimmen, welche Subroutinen die meiste Zeit verbrauchen und welche Subroutinen am häufigsten aufgerufen werden. Die Daten können auch genutzt werden, um ein Ausführungsdiagramm des Skripts zu erstellen, in dem die Beziehungen zwischen den Subroutinen zu erkennen sind.

Um den Profiler auf ein Perl-Skript anzuwenden, führen Sie den Perl-Interpreter mit dem Debugging-Switch -d aus. Der Profiler nutzt die Debugging-Hooks. Um also das Skript test.pl mit dem Profiler zu analysieren, müssen Sie den folgenden Befehl verwenden:

perl5 -d:DProf test.pl

Sobald das Skript endet, schreibt der Profiler die Profile-Informationen in eine Datei namens tmon.out. Ein Werkzeug wie dprofpp kann verwendet werden, um die in diesem Profile stehenden Daten zu interpretieren. Der folgende Befehl gibt die 15 Subroutinen aus, die die meiste Zeit verbraucht haben:

dprofpp

Um ein Ausführungsdiagramm der Subroutinen des Skripts zu erstellen, verwenden Sie den folgenden Befehl:

dprofpp -T

Für weitere Optionen sei auf dprofpp verwiesen.


Profile-Format

Das Profile liegt in einem Textformat vor, das wie folgt aussieht:

#fOrTyTwO
$hz=100;
$XS_VERSION='DProf 19970606';
# All values are given in HZ
$rrun_utime=2; $rrun_stime=0; $rrun_rtime=7
PART2
+ 26 28 566822884 DynaLoader::import
- 26 28 566822884 DynaLoader::import
+ 27 28 566822885 main::bar
- 27 28 566822886 main::bar
+ 27 28 566822886 main::baz
+ 27 28 566822887 main::bar
- 27 28 566822888 main::bar
[....]

Die erste Zeile ist die "Magic Number". Die zweite Zeile enthält die Hertz-Zahl oder die Clockticks der Maschine, auf der das Profile erstellt wurde. Die dritte Zeile enthält den Namen und die Version des Tools, mit dem das Profile erzeugt wurde. Die fünfte Zeile enthält drei Variablen, die die Benutzer-, System- und die Realzeit des Prozesses für die Dauer des Profilings enthalten. Die sechste Zeile leitet den Abschnitt mit dem eigentlichen Ein/Austritts-Profile der Sub ein.

PART2 besteht aus den folgenden Feldern:

Eintritts- (+) und Austrittsmarkierung (-) für die Subroutine
Benutzerzeit (User) der Sub-Markierung (Ein/Austritt) in Ticks
Systemzeit (System) der Sub-Markierung (Ein/Austritt) in Ticks
Realzeit der Sub-Markierung (Ein/Austritt) in Ticks
Vollständig qualifizierter Name der Subroutine (wenn möglich)


Autoload

Entdeckt Devel::DProf den Aufruf einer &AUTOLOAD-Subroutine, sieht es in der Variablen $AUTOLOAD nach, um den realen Namen der aufgerufenen Subroutine zu ermitteln. Siehe perlsub.


Bugs

XSUBs, fest integrierte Funktionen und Destruktoren können mit Devel::DProf nicht gemessen werden.

Schicken Sie Bug-Reports und Erweiterungsvorschläge an die perl5-porters-Mailing-Liste <perl5-porters@africa.nicoh.com>.


Version

Diese Manpage dokumentiert "Devel::DProf" in der Version DProf-19970614.


Siehe auch

perl, dprofpp, times(2)