Hi all

For those of you who have struggled with various Devel::*Prof modules, I
thought I'd let you know about Devel::NYTProf version 2, which was
recently released.

Released by Tim Bunce (of DBI fame),  this profiler is a major step
forward. It:

 - profiles your code by line, sub or block

 - provides exclusive and inclusive times (eg the time
   spent in the code in THIS sub,  vs the time spent in the
   code CALLED BY this sub)

 - calculates accurate times

 - produces an easy to understand HTML report, with issues
   highlighted

 - works in mod_perl - flawlessly!

You can see:
 - an example : 
http://blog.timbunce.org/2008/07/15/nytprof-v2-a-major-advance-in-perl-profilers/
 - the background story : 
http://blog.timbunce.org/2008/07/16/nytprof-v2-the-background-story/
 - the module itself : 
http://search.cpan.org/~timb/Devel-NYTProf-2.01/lib/Devel/NYTProf.pm

Using it in mod_perl is as easy as adding this to your httpd.conf
(before you load any other Perl modules):

   PerlModule Devel::NYTProf::Apache

It is worth starting apache in single process mode otherwise it writes
to multiple log files:
   apachectl -X

Once you've finished using your code (in order to generate stats), you
can generate the reports with:

   nytprofhtml -f /tmp/nytprof.$PID.out

If you've got your Perl modules in some directory other than the
compiled in @INC, you can use:

   nytprofhtml -f /tmp/nytprof.$PID.out -lib /path/to/libs

I use a framework which autogenerates a number of classes, so I had to
edit nytprofhtml to add a few lines in order to initialise my framework
before running the report.

Try this out - it is super easy, and very very useful

many thanks to the authors

Clint

Reply via email to