.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "IPC::Run3::ProfReporter 3" .TH IPC::Run3::ProfReporter 3 2024-01-28 "perl v5.38.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME IPC::Run3::ProfReporter \- base class for handling profiling data .SH SYNOPSIS .IX Header "SYNOPSIS" .SH DESCRIPTION .IX Header "DESCRIPTION" See IPC::Run3::ProfPP and for an example subclass. .PP This class just notes and accumulates times; subclasses use methods like "handle_app_call", "handle_run_exit" and "handle_app_exit" to emit reports on it. The default methods for these handlers are noops. .PP If run from the command line, a reporter will be created and run on each logfile given as a command line parameter or on run3.out if none are given. .PP This allows reports to be run like: .PP .Vb 2 \& perl \-MIPC::Run3::ProfPP \-e1 \& perl \-MIPC::Run3::ProfPP \-e1 foo.out bar.out .Ve .PP Use "\-" to read from STDIN (the log file format is meant to be moderately greppable): .PP .Vb 1 \& grep "^cvs " run3.out perl \-MIPC::Run3::ProfPP \-e1 \- .Ve .PP Use \-\-app to show only application level statistics (ie don't emit a report section for each command run). .SH METHODS .IX Header "METHODS" .ie n .IP """IPC::Run3::ProfReporter\->new""" 4 .el .IP \f(CWIPC::Run3::ProfReporter\->new\fR 4 .IX Item "IPC::Run3::ProfReporter->new" Returns a new profile reporting object. .ie n .IP """$reporter\->handle_app_call( ... )""" 4 .el .IP "\f(CW$reporter\->handle_app_call( ... )\fR" 4 .IX Item "$reporter->handle_app_call( ... )" .PD 0 .ie n .IP """$reporter\->handle_app_exit( ... )""" 4 .el .IP "\f(CW$reporter\->handle_app_exit( ... )\fR" 4 .IX Item "$reporter->handle_app_exit( ... )" .ie n .IP """$reporter\->handle_run_exit( ... )""" 4 .el .IP "\f(CW$reporter\->handle_run_exit( ... )\fR" 4 .IX Item "$reporter->handle_run_exit( ... )" .PD These methods are called by the handled events (see below). .ie n .IP """$reporter\->app_call(\e@cmd, $time)""" 4 .el .IP "\f(CW$reporter\->app_call(\e@cmd, $time)\fR" 4 .IX Item "$reporter->app_call(@cmd, $time)" .PD 0 .ie n .IP """$reporter\->app_exit($time)""" 4 .el .IP \f(CW$reporter\->app_exit($time)\fR 4 .IX Item "$reporter->app_exit($time)" .ie n .IP """$reporter\->run_exit(@times)""" 4 .el .IP \f(CW$reporter\->run_exit(@times)\fR 4 .IX Item "$reporter->run_exit(@times)" .PD .Vb 2 \& $self\->app_call( $time ); \& my $time = $self\->get_app_call_time; .Ve .Sp Sets the time (in floating point seconds) when the application, \fBrun3()\fR, or \fBsystem()\fR was called or exited. If no time parameter is passed, uses IPC::Run3's time routine. .Sp Use get_...() to retrieve these values (and _accum values, too). This is a separate method to speed the execution time of the setters just a bit. .ie n .IP """$reporter\->get_run_count()""" 4 .el .IP \f(CW$reporter\->get_run_count()\fR 4 .IX Item "$reporter->get_run_count()" .PD 0 .ie n .IP """$reporter\->get_app_call_time()""" 4 .el .IP \f(CW$reporter\->get_app_call_time()\fR 4 .IX Item "$reporter->get_app_call_time()" .ie n .IP """$reporter\->get_app_exit_time()""" 4 .el .IP \f(CW$reporter\->get_app_exit_time()\fR 4 .IX Item "$reporter->get_app_exit_time()" .ie n .IP """$reporter\->get_app_cmd()""" 4 .el .IP \f(CW$reporter\->get_app_cmd()\fR 4 .IX Item "$reporter->get_app_cmd()" .ie n .IP """$reporter\->get_app_time()""" 4 .el .IP \f(CW$reporter\->get_app_time()\fR 4 .IX Item "$reporter->get_app_time()" .ie n .IP """$reporter\->get_app_cumulative_time()""" 4 .el .IP \f(CW$reporter\->get_app_cumulative_time()\fR 4 .IX Item "$reporter->get_app_cumulative_time()" .ie n .IP """$reporter\->get_run_call_time()""" 4 .el .IP \f(CW$reporter\->get_run_call_time()\fR 4 .IX Item "$reporter->get_run_call_time()" .ie n .IP """$reporter\->get_run_exit_time()""" 4 .el .IP \f(CW$reporter\->get_run_exit_time()\fR 4 .IX Item "$reporter->get_run_exit_time()" .ie n .IP """$reporter\->get_run_time()""" 4 .el .IP \f(CW$reporter\->get_run_time()\fR 4 .IX Item "$reporter->get_run_time()" .ie n .IP """$reporter\->get_run_cumulative_time()""" 4 .el .IP \f(CW$reporter\->get_run_cumulative_time()\fR 4 .IX Item "$reporter->get_run_cumulative_time()" .ie n .IP """$reporter\->get_sys_call_time()""" 4 .el .IP \f(CW$reporter\->get_sys_call_time()\fR 4 .IX Item "$reporter->get_sys_call_time()" .ie n .IP """$reporter\->get_sys_exit_time()""" 4 .el .IP \f(CW$reporter\->get_sys_exit_time()\fR 4 .IX Item "$reporter->get_sys_exit_time()" .ie n .IP """$reporter\->get_sys_time()""" 4 .el .IP \f(CW$reporter\->get_sys_time()\fR 4 .IX Item "$reporter->get_sys_time()" .ie n .IP """$reporter\->get_sys_cumulative_time()""" 4 .el .IP \f(CW$reporter\->get_sys_cumulative_time()\fR 4 .IX Item "$reporter->get_sys_cumulative_time()" .ie n .IP """$reporter\->get_run_cmd()""" 4 .el .IP \f(CW$reporter\->get_run_cmd()\fR 4 .IX Item "$reporter->get_run_cmd()" .PD .SH LIMITATIONS .IX Header "LIMITATIONS" .SH COPYRIGHT .IX Header "COPYRIGHT" .Vb 1 \& Copyright 2003, R. Barrie Slaymaker, Jr., All Rights Reserved .Ve .SH LICENSE .IX Header "LICENSE" You may use this module under the terms of the BSD, Artistic, or GPL licenses, any version. .SH AUTHOR .IX Header "AUTHOR" Barrie Slaymaker