TStanley has asked for the wisdom of the Perl Monks concerning the following question:
My question is how would you actually add this into the code that you wish to profile? Do you add the profile sub to to the program and then call it as neccesary, or work the code that you need to profile into the sub?use Time::HiRes 'time'; my (%time,%calls); sub profile{ my ($func,$name); my $stub=sub{ my $start=time; my $return=$func->(@_); my $end=time; my $elapsed=$end-$start; $calls{$name}+=1; $time{$name}+=$elapsed; return $return; }; } END{ printf STDERR "%-12s %9s %6s\n","Function","# Calls","Elapsed"; for my $name (sort {$time{$b} <=> $time{$a}} (keys %time)){ printf "%-12s %9d %6.2f\n", $name, $calls{$name},$time{$name}; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Profiling code
by planetscape (Chancellor) on Nov 21, 2005 at 13:25 UTC | |
|
Re: Profiling code
by japhy (Canon) on Nov 21, 2005 at 12:57 UTC |