FPROFPP(1)
π FPROFPP(1) β the Devel::FastProf post processor, bestie edition β¨
okay so this is fprofpp, a lil user-contributed Perl thing that lives in the perl docs. she's a post processor for Devel::FastProf, and she's about to make your profile output make sense. π
πΈ NAME πΈ
fprofpp β literally just "Devel::FastProf post processor", that's the whole vibe π¦
β¨ SYNOPSIS β¨
$ fprofpp [-f filename] [-r] [-e] [-g] [-p] [-t num]
π DESCRIPTION π
so fprofpp reads the profile info that gets generated when you use Devel::FastProf (usually it's saved in a file called fastprof.out) and prints out a "human friendly" report. that's it, that's the job. she takes your scary numbers and makes them cute and readable. π«Ά
π OPTIONS π
these are the flags you can throw at fprofpp:
-ffilename β instead of reading the defaultfastprof.out, she reads whatever file you hand her as the argument. main character move, honestly. π-rβ sorts the output lines by how many times they got called, instead of by the time spent on them (time is the default, just so you know). π₯-tnum β only outputs the first num lines. keep it short, keep it chic. β¨-eβ accounts the time spent on code insideeval "..."constructions on the line where the eval starts.- time spent on subroutines defined inside an eval also gets accounted on that line, even when those subs get called later from outside the eval. yeah, even then. π
- by default, every time an eval runs, its code is treated like it's a different source file and accounted independently from the rest of the calls to that same eval.
- on the report, it points to the place (file and line) where the eval sits, but the line source is the code that was actually executed. sneaky but true. π΅οΈ
-gβ by default, with forking code, the time spent on every line by every process is accounted separately.- when this option is set though, the time reported is the sum of the time spent by all the processes on every line. one big group hug number. π«
-pβ includes process information in the report. π-Hβ do not print the report header. minimalism era. π§
π THE EMACS/XEMACS HACK π
the format of the report generated by Devel::SmallProf is similar to the one gcc or grep -n generate, and so it's easily parseable by Emacs (and honestly it probably wouldn't be too hard to do the same from vi and other editors either).
for example, one way to do it from XEmacs β starting from a buffer in the same directory where fastprof.out sits β is:
M-! fprofpp -t 30
M-x compilation-mode
and then, going to the hot spots of the profiled program is as easy as clicking the mouse over the lines in the fprofpp output buffer. iconic. π
π¦ SEE ALSO π¦
Devel::FastProf, perlrun.
π COPYRIGHT AND LICENSE π
Copyright (C) 2005 by Salvador FandiΓ±o <sfandino@yahoo.com>.
This program 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.
and that's the whole page, bestie π this was perl v5.42.0, dated 2025-07-25, and it's the FPROFPP(1) page β go profile something and slay, no cap β¨ππ«Ά
π¦ where this page comes from
- fedora 43: perl-Devel-FastProf 0.08-51.fc43 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms