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); off-
     set 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  frac-
     tion  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

     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)


                              - 1 -