DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

profil(S-osr5)


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-osr5), times(S-osr5)

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.
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 -- 02 June 2005