in reply to Avoiding "Pkg::__ANON__" diagnostics with -d:DProf

Have you tried using Devel::SmalProf?

As it profiles the code line-by-line rather than function-by-function, it doesn't have the same trouble with anonymous subs.

Sample of output

================ SmallProf version 1.11 ================ Profile of test3.pl8 + Page 1 =============================================================== +== count wall tm cpu time line 0 0.000000 0.000000 1:$t = sub { 1010 0.000000 0.110000 2: for(1..100) { 11000 0.999900 1.133000 3: for(1..10) { 10000 0.999900 1.170000 4: $x++; 0 0.000000 0.000000 5: } 0 0.000000 0.000000 6: } 1 0.000000 0.000000 7:}; 11 0.000000 0.000000 8:for(1..10) { 10 0.000000 0.000000 9: print $t->(); 0 0.000000 0.000000 10:} 1 0.550701 0.000000 11:print 'Done';

Be warned. It really does profile every line, modules and pragmas included. And it slows down your program by *a lot*, but the detailed information it produces is well worth the wait.


Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller