monitor man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

MONITOR(3C)							   MONITOR(3C)

NAME
       monitor - prepare process execution profile

SYNOPSIS
       #include <mon.h>

       void monitor(int (*lowpc(), int (*highpc)(), WORD *buffer, size_t bufsize,
	    size_t nfunc);

DESCRIPTION
       The monitor() function is an interface to the profil(2) function and is
       called automatically with default parameters by any program created  by
       the  cc	utility with the -p option specified. Except to establish fur‐
       ther control over profiling activity, it is not necessary to explicitly
       call monitor().

       When used, monitor() is called at least at the beginning and the end of
       a program. The first call to monitor() initiates the recording  of  two
       different  kinds	 of execution-profile information: execution-time dis‐
       tribution and function call count. Execution-time distribution data  is
       generated  by  profil()	and  the function call counts are generated by
       code supplied to the object file (or files) by  cc -p.  Both  types  of
       information are collected as a program executes. The last call to moni‐
       tor() writes this collected data to the output file mon.out.

       The name of the file written by monitor() is controlled by the environ‐
       ment  variable  PROFDIR. If PROFDIR does not exist, the file mon.out is
       created in the current directory. If PROFDIR exists but has  no	value,
       monitor()  does	no profiling and creates no output file. If PROFDIR is
       dirname, and monitor() is called automatically by compilation  with  cc
       -p, the file created is dirname/pid.progname where progname is the name
       of the program.

       The lowpc and highpc arguments are the beginning and  ending  addresses
       of the region to be profiled.

       The  buffer  argument  is  the address of a user-supplied array of WORD
       (defined in the header <mon.h>).	 The buffer argument is used by	 moni‐
       tor() to store the histogram generated by profil() and the call counts.

       The bufsize argument identifies the number of array elements in buffer.

       The  nfunc  argument  is	 the number of call count cells that have been
       reserved in buffer. Additional call count cells will be allocated auto‐
       matically as they are needed.

       The bufsize argument should be computed using the following formula:

	 size_of_buffer =
		 sizeof(struct hdr) +
		 nfunc * sizeof(struct cnt) +
		 ((highpc-lowpc)/BARSIZE) * sizeof(WORD) +
		 sizeof(WORD) − 1 ;
	 bufsize = (size_of_buffer / sizeof(WORD));

       where:

	   o	  lowpc,  highpc, nfunc are the same as the arguments to moni‐
		  tor();

	   o	  BARSIZE is the number of program bytes  that	correspond  to
		  each histogram bar, or cell, of the profil() buffer;

	   o	  the  hdr and cnt structures and the type WORD are defined in
		  the header <mon.h>.

       The default call to monitor() is as follows:

	 monitor (&eprol, &etext, wbuf, wbufsz, 600);

       where:

	   o	  eprol is the beginning of the	 user's	 program  when	linked
		  with cc -p (see end(3C));

	   o	  etext is the end of the user's program (see end(3C));

	   o	  wbuf is an array of WORD with wbufsz elements;

	   o	  wbufsz  is  computed	using  the bufsize formula shown above
		  with BARSIZE of 8;

	   o	  600 is the  number  of  call	count  cells  that  have  been
		  reserved in buffer.

       These parameter settings establish the computation of an execution-time
       distribution histogram that uses profil() for the entire program,  ini‐
       tially  reserves	 room for 600 call count cells in buffer, and provides
       for enough histogram cells to  generate	significant  distribution-mea‐
       surement	 results.  For	more  information on the effects of bufsize on
       execution-distribution measurements, see profil(2).

EXAMPLES
       Example 1 Example to stop execution monitoring and write the results to
       a file.

       To  stop	 execution monitoring and write the results to a file, use the
       following:

	 monitor((int (*)())0, (int (*)())0, (WORD *)0, 0, 0);

       Use prof to examine the results.

USAGE
       Additional calls to monitor() after main() has been called  and	before
       exit()  has  been  called will add to the function-call count capacity,
       but such calls will also replace and  restart  the  profil()  histogram
       computation.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌───────────────┬─────────────────┐
       │ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
       ├───────────────┼─────────────────┤
       │MT-Level       │ Safe		 │
       └───────────────┴─────────────────┘

SEE ALSO
       profil(2), end(3C), attributes(5), prof(5)

				 Dec 29, 1996			   MONITOR(3C)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net