PROFIL(S) XENIX System V PROFIL(S)
Name
profil - Creates an execution time profile.
Syntax
void profil (buff, bufsiz, offset, scale)
char *buff;
int bufsiz, scale;
int (*offset)();
Description
buff points to an area of core whose length (in bytes) is
given by bufsiz. After this call, the user's program
counter is examined each clock tick, where a clock tick is
some fraction of a second given in machine(HW). offset is
subtracted from it, and the result multiplied by scale. If
the resulting number corresponds to a word inside buff, that
word 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 words in buff; 077777 (octal)
maps each pair of instruction words 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 will be turned off
if an update in buff would cause a memory fault.
See Also
prof(CP), monitor(S)
Page 1 (printed 8/7/87)