Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > P


HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


profil — execution time profile


#include <time.h> void profil( unsigned short int *buff, size_t bufsiz, size_t offset, unsigned int scale );


profil() controls profiling, by which the system maintains estimates of the amount of time the calling program spends executing at various places in its address space.

The buff argument must point to an area of memory whose length (in bytes) is given by bufsiz. When profiling is on, the process's program counter (pc) is examined each clock tick (CLK_TCK times per second), offset is subtracted from the pc value, and the result is multiplied by scale. If the resulting number corresponds to an element inside the array of unsigned short ints to which buff points, that element is incremented.

The number of samples per second for a given implementation is given by CLK_TCK, which is defined in <time.h>.

The scale is interpreted as an unsigned, sixteen bit, fixed-point fraction with binary point at the left: 0177777 (octal) gives a one-to-one 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 one of the exec() functions 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.


No value is returned.


profil(): SVID2, SVID3, XPG2

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.