PROFIL(II)                   5/15/74                   PROFIL(II)


     profil - execution time profile


     (profil = 44.; not in assembler)

     sys     profil; buff; bufsiz; offset; scale

     profil(buff, bufsiz, offset, scale)

     char buff[ ];

     int bufsiz, offset, scale;


     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  (60th  second);

     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.

     The  scale  is  interpreted  as  an  unsigned,   fixed-point

     fraction  with  binary  point at the left: 177777(8) gives a

     1-1 mapping of pc's to words in  buff;  77777(8)  maps  each

     pair   of   instruction   words  together.   2(8)  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

     also turned off when an exec is executed but remains  on  in

     child and parent both after a fork.


     monitor (III), prof (I)