Proceedings of the 2002 Usenix Annual Technical Conference Simple and General Statistical Profiling with Pct

The Profile Collection Toolkit (PCT) provides a novel generalized CPU profiling facility. PCT enables arbitrarily late profiling activation and arbitrarily early report generation. PCT usually requires no re-compilation, re-linking, or even restarting of programs. Profiling reports gracefully degrade with available debugging data. PCT uses its debugger controller, dbctl, to drive a debugger’s control over a process. dbctl has a configuration language that allows users to specify context-specific debugger commands. These commands can sample general program state, such as call stacks and function parameters. For systems or situations with poor debugger support, PCT provides several other portable and flexible collection methods. PCT can track most program code, including code in shared libraries and late-loaded shared objects. On Linux, PCT can seamlessly merge kernel CPU time profiles with user-level CPU profiles to create whole system reports.

[1]  Michel Dagenais,et al.  Measuring and Characterizing System Behavior Using Kernel-Level Event Logging , 2000, USENIX Annual Technical Conference, General Track.

[2]  Susan L. Graham,et al.  Gprof: A call graph execution profiler , 1982, SIGPLAN '82.

[3]  Robert O. Hastings,et al.  Fast detection of memory leaks and access errors , 1991 .

[4]  James R. Larus,et al.  Optimally profiling and tracing programs , 1992, POPL '92.

[5]  Alan Dain Samples,et al.  Profile-Driven Compilation , 1991 .

[6]  Robert J. Hall,et al.  Call Path Profiling of Monotonic Program Resources in UNIX , 1993, USENIX Summer.

[7]  James R. Larus,et al.  EEL: machine-independent executable editing , 1995, PLDI '95.

[8]  Jeffrey K. Hollingsworth,et al.  An API for Runtime Code Patching , 2000, Int. J. High Perform. Comput. Appl..

[9]  Don Libes,et al.  expect: Curing Those Uncontrollable Fits of Interaction , 1990, USENIX Summer.

[10]  Steven McCanne,et al.  A Randomized Sampling Clock for CPU Utilization Estimation and Code Profiling , 1993, USENIX Winter.

[11]  Alec Wolman,et al.  Instrumentation and optimization of Win32/intel executables using Etch , 1997 .

[12]  Michael D. Smith,et al.  Tracing with Pixie , 1991 .

[13]  A. Dain Samples Compiler Implementation of ADTs Using Profile Data , 1992, CC.

[14]  Richard J. Moore A Universal Dynamic Trace for Linux and Other Operating Systems , 2001, USENIX Annual Technical Conference, FREENIX Track.

[15]  Lance M. Berc,et al.  Continuous profiling: where have all the cycles gone? , 1997, ACM Trans. Comput. Syst..