PROF(1) General Commands Manual PROF(1)
prof - display profile data
prof [ -alnsz ] [ -v -low [ -high ] ]
[ image-file [ profile-file ... ] ]
prof produces an execution profile of a program. The profile data is
taken from the profile file which is created by programs compiled with
the -p option of cc(1V) and other compilers. That option also links in
versions of the library routines (see monitor(3)) which are compiled
for profiling. The symbol table in the executable image file image-
file (a.out by default) is read and correlated with the profile file
profile-file (mon.out by default). For each external symbol, the per-
centage of time spent executing between that symbol and the next is
printed (in decreasing order), together with the number of times that
routine was called and the number of milliseconds per call. If more
than one profile file is specified, the prof output shows the sum of
the profile information in the given profile files.
To tally the number of calls to a routine, the modules that make up the
program must be compiled with the 'cc -p' option (see cc(1V)). This
option also means that the profile file is produced automatically.
A single function may be split into subfunctions for profiling by means
of the MARK macro (see prof(3)).
Beware of quantization errors.
The profiled program must call exit(2V) or return normally for the pro-
filing information to be saved in the mon.out file.
-a Report all symbols rather than just external symbols.
-l Sort the output by symbol value.
-n Sort the output by number of calls.
-s Produce a summary profile file in mon.sum. This is really only
useful when more than one profile file is specified.
-z Display routines which have zero usage (as indicated by call
counts and accumulated time).
-v [ -low [ -high ]]
Suppress all printing and produce a graphic version of the pro-
file on the standard output for display by the plot(1G) filters.
When plotting, the numbers low and high, (by default 0 and 100),
select a percentage of the profile to be plotted, with accord-
ingly higher resolution.
If this environment variable contains a value, place profiling
output within that directory, in a file named pid.programname.
pid is the process ID, and programname is the name of the pro-
gram being profiled, as determined by removing any path prefix
from the argv with which the program was called. If the
variable contains a NULL value, no profiling output is produced.
Otherwise, profiling output is placed in the file mon.out.
a.out executable file containing namelist
mon.out profiling output
mon.sum summary profile
cc(1V), gprof(1), plot(1G), tcov(1), exit(2V), profil(2), monitor(3)
prof is confused by the FORTRAN compiler which puts the entry points at
the bottom of subroutines and functions.
22 December 1987 PROF(1)