Call Path Profiling of Monotonic Program Resources in UNIX
Robert J. Hall and Aaron J. Goldberg
AT&T Bell Laboratories
600 Mountain Ave.
Murray Hill, NJ 07974
Abstract
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.
Download the full text of this paper in
ASCII (44,988 bytes) form.
To Become a USENIX Member, please see our
Membership Information.