{"id":7446,"date":"2022-12-20T19:38:08","date_gmt":"2022-12-20T22:38:08","guid":{"rendered":"http:\/\/lode.uno\/linux-man\/index.php\/2022\/12\/20\/ipcrun3profreporter-man3\/"},"modified":"2022-12-20T19:38:08","modified_gmt":"2022-12-20T22:38:08","slug":"ipcrun3profreporter-man3","status":"publish","type":"post","link":"https:\/\/lode.uno\/linux-man\/2022\/12\/20\/ipcrun3profreporter-man3\/","title":{"rendered":"IPC::Run3::ProfReporter (man3)"},"content":{"rendered":"<h1 align=\"center\">IPC::Run3::ProfReporter<\/h1>\n<p> <a href=\"#NAME\">NAME<\/a><br \/> <a href=\"#SYNOPSIS\">SYNOPSIS<\/a><br \/> <a href=\"#DESCRIPTION\">DESCRIPTION<\/a><br \/> <a href=\"#METHODS\">METHODS<\/a><br \/> <a href=\"#LIMITATIONS\">LIMITATIONS<\/a><br \/> <a href=\"#COPYRIGHT\">COPYRIGHT<\/a><br \/> <a href=\"#LICENSE\">LICENSE<\/a><br \/> <a href=\"#AUTHOR\">AUTHOR<\/a> <\/p>\n<hr>\n<h2>NAME <a name=\"NAME\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">IPC::Run3::ProfReporter \u2212 base class for handling profiling data<\/p>\n<h2>SYNOPSIS <a name=\"SYNOPSIS\"><\/a> <\/h2>\n<h2>DESCRIPTION <a name=\"DESCRIPTION\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">See IPC::Run3::ProfPP and for an example subclass.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">This class just notes and accumulates times; subclasses use methods like &#8220;handle_app_call&#8221;, &#8220;handle_run_exit&#8221; and &#8220;handle_app_exit&#8221; to emit reports on it. The default methods for these handlers are noops.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">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.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">This allows reports to be run like:<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">perl \u2212MIPC::Run3::ProfPP \u2212e1 <br \/> perl \u2212MIPC::Run3::ProfPP \u2212e1 foo.out bar.out<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Use &#8220;\u2212&#8221; to read from <small>STDIN<\/small> (the log file format is meant to be moderately greppable):<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">grep &#8220;^cvs &#8221; run3.out perl \u2212MIPC::Run3::ProfPP \u2212e1 \u2212<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Use \u2212\u2212app to show only application level statistics (ie don\u2019t emit a report section for each command run).<\/p>\n<h2>METHODS <a name=\"METHODS\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">&#8220;IPC::Run3::ProfReporter\u2212>new&#8221;<\/p>\n<p style=\"margin-left:17%;\">Returns a new profile reporting object.<\/p>\n<p style=\"margin-left:11%;\">&#8220;$reporter\u2212>handle_app_call( &#8230; )&#8221; <br \/> &#8220;$reporter\u2212>handle_app_exit( &#8230; )&#8221; <br \/> &#8220;$reporter\u2212>handle_run_exit( &#8230; )&#8221;<\/p>\n<p style=\"margin-left:17%;\">These methods are called by the handled events (see below).<\/p>\n<p style=\"margin-left:11%;\">&#8220;$reporter\u2212>app_call(@cmd, $time)&#8221; <br \/> &#8220;$reporter\u2212>app_exit($time)&#8221; <br \/> &#8220;$reporter\u2212>run_exit(@times)&#8221;<\/p>\n<p style=\"margin-left:17%;\">$self\u2212>app_call( $time ); <br \/> my $time = $self\u2212>get_app_call_time;<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">Sets the time (in floating point seconds) when the application, <b>run3()<\/b>, or <b>system()<\/b> was called or exited. If no time parameter is passed, uses IPC::Run3\u2019s time routine.<\/p>\n<p style=\"margin-left:17%; margin-top: 1em\">Use get_&#8230;() to retrieve these values (and _accum values, too). This is a separate method to speed the execution time of the setters just a bit.<\/p>\n<p style=\"margin-left:11%;\">&#8220;$reporter\u2212>get_run_count()&#8221; <br \/> &#8220;$reporter\u2212>get_app_call_time()&#8221; <br \/> &#8220;$reporter\u2212>get_app_exit_time()&#8221; <br \/> &#8220;$reporter\u2212>get_app_cmd()&#8221; <br \/> &#8220;$reporter\u2212>get_app_time()&#8221; <br \/> &#8220;$reporter\u2212>get_app_cumulative_time()&#8221; <br \/> &#8220;$reporter\u2212>get_run_call_time()&#8221; <br \/> &#8220;$reporter\u2212>get_run_exit_time()&#8221; <br \/> &#8220;$reporter\u2212>get_run_time()&#8221; <br \/> &#8220;$reporter\u2212>get_run_cumulative_time()&#8221; <br \/> &#8220;$reporter\u2212>get_sys_call_time()&#8221; <br \/> &#8220;$reporter\u2212>get_sys_exit_time()&#8221; <br \/> &#8220;$reporter\u2212>get_sys_time()&#8221; <br \/> &#8220;$reporter\u2212>get_sys_cumulative_time()&#8221; <br \/> &#8220;$reporter\u2212>get_run_cmd()&#8221;<\/p>\n<h2>LIMITATIONS <a name=\"LIMITATIONS\"><\/a> <\/h2>\n<h2>COPYRIGHT <a name=\"COPYRIGHT\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">Copyright 2003, R. Barrie Slaymaker, Jr., All Rights Reserved<\/p>\n<h2>LICENSE <a name=\"LICENSE\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">You may use this module under the terms of the <small>BSD,<\/small> Artistic, or <small>GPL<\/small> licenses, any version.<\/p>\n<h2>AUTHOR <a name=\"AUTHOR\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">Barrie Slaymaker <barries@slaysys.com><\/p>\n<hr>\n","protected":false},"excerpt":{"rendered":"<p>  IPC::Run3::ProfReporter \u2212 base class for handling profiling data <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[3758,3007],"class_list":["post-7446","post","type-post","status-publish","format-standard","hentry","category-sin-categoria","tag-ipcrun3profreporter","tag-man3"],"gutentor_comment":0,"_links":{"self":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts\/7446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/comments?post=7446"}],"version-history":[{"count":0,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts\/7446\/revisions"}],"wp:attachment":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/media?parent=7446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/categories?post=7446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/tags?post=7446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}