11 May 2007 17:48:08 UTC
- Distribution: Devel-FastProf
- Module version: 0.08
- Source (raw)
- Browse (raw)
- How to Contribute
- Issues (0)
- Testers (442 / 6 / 0)
- KwaliteeBus factor: 1
- 75.00% Coverage
- License: unknown
- Activity24 month
- Download (38.37KB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest versionSALVA Salvador Fandiño García
Devel::FastProf - "fast" perl per-line profiler
$ perl -d:FastProf my_script.pl $ fprofpp -t 10
Devel::FastProf tells you how much time has been spent on every line of your program.
Devel::FastProfis a perl per-line profiler. What that means is that it can tell you how much time is spent on every line of a perl script (the standard Devel::DProf is a per-subroutine profiler).
I have been the maintainer of Devel::SmallProf for some time and although I found it much more useful that Devel::DProf, it had an important limitation: it was terribly slow, around 50 times slower than the profiled script being run out of the profiler.
So, I rewrote it from scratch in C, and the result is
Devel::FastProf, that runs only between 3 and 5 times slower than under normal execution... well, maybe I should have called it
Devel::FastProfwith your programs, you have to call perl with the
-dswitch (see perlrun) as follows:
$ perl -d:FastProf my_script.pl
Devel::FastProfwill write the profiling information to a file named
fastprof.outunder the current directory.
To analyse the information on this file use the post processor script fprofpp included with this package.
Some options can be passed to
Devel::FastProfvia the environment variable
allows to change the name of the output file.
Devel::FastProfmeassures the wall clock time spent on every line, but if this entry is included it will use the cpu time (user+system) instead.
this option has to be used if the profiled script forks new processes, if you forget to do so, a corrupted
fastprof.outfile could be generated.
Activating this mode causes a big performance penalty because write operations from all the processes have to be serialized using locks. That is why it is not active by default.
This is an example of how to set those options:
$ FASTPROF_CONFIG="usecputime,filename=/tmp/fp.out" \ perl -d:FastProf myscript.pl
No Windows! No threads!
Only tested on Linux. It is know not to work under Solaris.
The code of subroutines defined inside
eval "..."constructions that do not include any other code will not be available on the reports. This is caused by a limitation on the perl interpreter.
Option -g is buggy, it only works when all the modules are loaded in the original process.
Perl 5.8.8 or later is recomended. Older versions have a bug that cause this profiler to be slower.
If you find any bug, please, send me an e-mail to firstname.lastname@example.org or report it via the CPAN RT system.
Copyright (C) 2005-2007 by Salvador Fandiño <email@example.com>.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available.
Module Install Instructions
To install Devel::FastProf, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell install Devel::FastProf
For more information on module installation, please visit the detailed CPAN module installation guide.