profil(S)
profil --
execution time profile
Syntax
cc ... -lc
void profil (buff, bufsiz, offset, scale)
void (* offset)();
char *buff;
unsigned bufsiz, scale;
Description
buff
points to an area of core whose length (in bytes) is given by
bufsiz.
After this call, the user's program counter (pc)
is examined each clock tick.
Then the value of
offset
is subtracted from it,
and the remainder multiplied by
scale.
If the resulting number corresponds to an entry
inside
buff,
that entry is incremented.
An entry is defined
as a series of bytes with length
sizeof(short).
The scale is interpreted as an unsigned,
fixed-point fraction with binary point at the
left: 0177777 (octal) gives a 1-1 mapping of pc's to entries
in
buff;
077777 (octal) maps each pair of instruction entries
together.
02(octal) maps all instructions onto the beginning of
buff
(producing a non-interrupting core clock).
Profiling is turned off by giving a
scale
of 0 or 1.
It is rendered
ineffective by giving a
bufsiz
of 0.
Profiling is turned off when an
exec
is executed, but remains on in child and parent both
after a
fork.
Profiling is turned off if an update in
buff
would cause a memory fault.
See also
prof(CP),
monitor(S),
times(S)
Standards conformance
profil is not part of any
currently supported standard;
it was developed by UNIX System Laboratories, Inc. and
is maintained by The SCO Group.
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003