MPROF(1)MPROF(1)NAME
mprof, wm/mprof - memory profiling limbo programs
SYNOPSISmprof [ -bcMflnve123 ] [ -m modname ] ... [ cmd arg ... ]
wm/mprof [ -e12 ] [ -m modname ] ... [ cmd arg ... ]
DESCRIPTION
Mprof is a simple memory profiling tool which calculates the amount of
main, heap and image memory used on a particular line of limbo source
or in a particular limbo function or module. The main memory in ques‐
tion covers the space taken by dis code, jit code, runtime stacks and
dynamic C module text, data and relocation areas. The heap memory cov‐
ers all other limbo data structures. The source in question should be
compiled with the -g flag so that the relevant symbol table files
exist. In its simplest form, the memory profiler shows a line number,
the current memory in bytes allocated when executing this line, the
high water memory in bytes allocated when executing this line and the
limbo source. This information is also available at the function and
module level.
The tk version of the profiler wm/mprof shows this information in a
text widget and colours the lines of source according to the amount of
memory allocated by the line. The darker the colour, the more memory
used.
The -b option starts profiling.
The -c option clears all profiling statistics and state in the memory
profiling device. If any commands are specified to mprof , this is done
automatically. It's specific use is to end the accumulation of statis‐
tics when profiling interactively. See the example below.
The -M option shows the memory statistics for each module The -f option
shows the memory statistics for each function.
The -l option shows the memory statistics for each line. If neither
this option nor the -M and -f options are given, -M and -l are assumed.
The -n option lists the name of the file along with the line number.
The -v option outputs all functions and/or lines even when they do not
involve memory allocating or freeing operations.
The -m option lists the module names which are to be profiled. If none
are given, all the modules loaded by the kernel will be profiled. The
name may be the actual name of the module or its path name.
The -e option profiles the module that is loaded first in any following
command. In this case there is no need to give a -m option as this is
added automatically.
The -1 option profiles only main memory (pool number 1 in the kernel).
The default is to profile main, heap and image memory.
The -2 option profiles only heap memory (pool number 2 in the kernel).
The default is to profile main, heap and image memory.
The -3 option profiles only image memory (pool number 3 in the kernel).
The default is to profile main, heap and image memory.
Any remaining arguments are assumed to specify a command and set of
arguments to the command. If this is the case, mprof will automatically
start profiling, run the command to completion and then stop profiling
before showing the profile statistics.
Mprof displays the profile statistics (unless the -b option is being
used) according to the output format required.
EXAMPLE
To profile a particular command
mprof /dis/math/parts 10000
wm/mprof /dis/math/parts 10000
To profile the same command but restrict attention to its own module (Partitions).
mprof-m Partitions /dis/math/parts 10000
wm/mprof -m Partitions /dis/math/parts 10000
A shorter version of the above
mprof-e /dis/math/parts 10000
wm/mprof -e /dis/math/parts 10000
To profile interactively
mprof-b -m Polyhedra
wm/polyhedra &
mprof-M -f -l -n
<interact with wm/polyhedra ...>
mprof-M -f -l -n
wm/mprof
mprof-c
Note that the output format options ( -M , -f , -l , -n , -v ) are
ignored when -b is present.
SOURCE
/appl/cmd/mprof.b
/appl/wm/mprof.b
BUGS
Can take quite a time to present statistics when profiling all modules
in the system.
SEE ALSOcprof(1), prof(1), prof(2), prof(3)MPROF(1)