kprof man page on Plan9

Printed from http://www.polarhome.com/service/man/?qf=kprof&af=0&tf=2&of=Plan9

PROF(1)								       PROF(1)

NAME
       prof, tprof, kprof - display profiling data

SYNOPSIS
       prof [ -dr ] [ program ] [ profile ]

       tprof pid

       kprof kernel kpdata

DESCRIPTION
       Prof  interprets	 files produced automatically by programs loaded using
       the -p option of 8l(1) or other loader.	The symbol table in the	 named
       program	file etc., according to $objtype, by default) is read and cor‐
       related with the profile file by default).  For each symbol,  the  per‐
       centage	of  time  (in seconds) spent executing between that symbol and
       the next is printed (in decreasing order), together with the time spent
       there and the number of times that routine was called.

       Under  option -d, prof prints the dynamic call graph of the target pro‐
       gram, annotating the calls with the time	 spent	in  each  routine  and
       those  it  calls,  recursively.	 The output is indented two spaces for
       each call, and is formatted as

	      symbol:time/ncall

       where symbol is the entry point of the call, time is  in	 milliseconds,
       and  ncall  is  the number of times that entry point was called at that
       point in the call graph.	 If ncall is one, the /ncall is elided.	  Nor‐
       mally  recursive	 calls are compressed to keep the output brief; option
       -r prints the full call graph.

       The size of the buffer in program used to hold the profiling  data,  by
       default	2000  entries,	may  be	 controlled by setting the environment
       variable profsize before running program.  If the buffer fills,	subse‐
       quent function calls may not be recorded.

       The profiling code provided by the linker initializes itself to profile
       the current pid, producing a file called prof.pid.  If a process forks,
       only  the  parent  will	continue  to be profiled.  Forked children can
       cause themselves to be profile by calling

	      prof(fn, arg, entries, what)

       which causes the function fn(arg) to  be	 profiled.   When  fn  returns
       prof.pid is produced for the current process pid.

       The  environment	 variable  proftype can be set to one of user, kernel,
       elapsed, or sample, to profile time measured spent in user  mode,  time
       spent in user+kernel mode, or elapsed time, using the cycle counter, or
       the time in user mode using the kernel's HZ clock.  The	cycle  counter
       is  currently only available on modern PCs and on the PowerPC.  Default
       profiling measures user time, using the cycle counter if it  is	avail‐
       able.

       Tprof  is  similar  to prof, but is intended for profiling multiprocess
       programs.  It uses the /proc/pid/profile file  to  collect  instruction
       frequency  counts  for  the text image associated with the process, for
       all processes that share that text.  It must be run while  the  program
       is still active, since the data is stored with the running program.  To
       enable tprof profiling for a given process,

	      echo profile > /proc/pid/ctl

       and then, after the program has run for a while, execute

	      tprof pid

       Since the data collected for tprof is based on interrupt-time  sampling
       of the program counter, tprof has no -d or -r options.

       Kprof is similar to prof, but presents the data accumulated by the ker‐
       nel profiling device, kprof(3).	The symbol table  file,	 that  of  the
       operating system kernel, and the data file, typically /dev/kpdata, must
       be provided.  Kprof has no options and cannot present dynamic data.

SOURCE
       /sys/src/cmd/prof.c
       /sys/src/cmd/kprof.c

SEE ALSO
       8l(1), exec(2), kprof(3)

								       PROF(1)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Plan9

List of man pages available for Plan9

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