You are here
Call Path Profiling of Monotonic Program Resources in UNIX
Robert J. Hall, Aaron J. Goldberg, AT&T Bell Laboratories
Practical performance improvement of a complex program must be guided by empirical measurements of its resource usage. Essentially, the programmer wants to know where in the source code the program is inefficient and why this is so. The process interface of UNIX System V (proc(4)) provides access to the raw data (e.g. time, faults, traps, and system calls) necessary to answering the why question, but gives no guidance in answering the where question. This paper describes a novel approach to the latter, Call Path Profiling, which is both more informative and more closely tied to the process of program optimization than either trace-based or prof/gprof-like approaches. In addition, by viewing consumption of a resource as the ticking of a clock, we generalize the interval-based sampling approach of time profilers to arbitrary monotonic resources. The approach is embodied in several prototypes, including CPPROF which operates under System V.