This Article 
 Bibliographic References 
 Add to: 
Call Path Refinement Profiles
June 1995 (vol. 21 no. 6)
pp. 481-496
In order to effectively optimize complex programs built in a layered or recursive fashion (possibly from reused general components), the programmer has a critical need for performance information connected directly to the design decisions and other optimization opportunities present in the code. Call path refinement profiles are novel tools for guiding the optimization of such programs, that: 1) provide detailed performance information about arbitrarily nested (direct or indirect) function call sequences, and 2) focus the user’s attention on performance bottlenecks by limiting and aggregating the information presented. This paper discusses the movitation for such profiles, describes in detail their implementation in the CPPROF profiler, and relates them to previous profilers, showing how most widely available profilers can be expressed simply and efficiently in terms of call path refinements.

[1] A.V. Aho, R. Sethi, and J.D. Ullman, Compilers, Principles, Techniques and Tools.New York: Addison-Wesley, 1985.
[2] T.E. Anderson and E.D. Lazowska, “A Tool for Tuning Parallel Program Performance,” Proc. ACM SIGmetrics Conf. Measurement and Modeling of Computer Systems, ACM, New York, May 1990, pp. 115‐125.
[3] ATT&T Corp., The Plan 9 Programmer’s Manual.Murray Hill, N.J.: AT&T Bell Laboratories, 1993.
[4] R. Faulkner and R. Gomes,“The process file system and process model in UNIX System V,” Proc. Winter 1991 USENIX Conf.,Berkeley, Calif.: USENIX Assoc., pp. 243-252, 1991.
[5] Franz, Inc., Allegro COMPOSER User Guide. version 1.0, chapter 6, Berkeley, Calif.: Franz, Inc., 1990.
[6] A.J. Goldberg and J.L. Hennessy, “Mtool: An Integrated System for Performance Debugging Shared Memory Multiprocessor Applications,” IEEE Trans. Parallel and Distributed Systems, Vol. 4, No. 1, Jan. 1993, pp. 28‐40.
[7] S.L. Graham,P.B. Kessler,, and M.K. McKusick,“Gprof: A call graph execution profiler,” ACM SIGPLAN Notices, vol. 17, no. 6, pp. 120-126, June, 1982.
[8] R.J. Hall,“Program improvement by automatic redistribution of intermediate results: An overview,” M. Lowry and R. McCartney, eds., Automating Software Design,Menlo Park, Calif.: AAAI Press, 1991.
[9] R.J. Hall,“Call path profiling,” Proc. 14th Int’l Conf. Software Engineering,New York, N.Y.: ACM, pp. 296-306, 1992.
[10] R.J. Hall,“Interactive specification acquisition via scenarios: A proposal,” Proc. AAAI-’92 Workshop Automating Software Design,Cambridge, Mass.: AAAI Press, 1992.
[11] R.J. Hall and A.J. Goldberg,“Call path profiling of monotonic program resources in Unix,” Proc. Summer 1993 USENIX Technical Conf.,Berkeley, Calif.: USENIX Assoc., pp. 1-13, 1993.
[12] R.J. Hall and A.J. Goldberg,“Integrated call path profiling of multiple system resources,” Technical Memorandum #BL0113840-031094-08TM, AT&T Bell Laboratories, 1994.
[13] J.K. Hollingsworth, R.B. Irvin, and B.P. Miller, “The Integration of Application- and System-Based Metrics in a Parallel Program Performance Tool,” Proc. Third ACM Sigplan Symp. Principles and Practice of Parallel Programming, ACM Press, New York, 1991, pp. 189-200.
[14] D.E. Knuth,“An empirical study of Fortran programs,” Software--Practice and Experience, vol. 1, pp. 105-133, 1971.
[15] A.D. Malony,J.L. Larson,, and D.A. Reed,“Tracing application program execution on the Cray X-MP and Cray 2,” Proc. Supercomputing’90,New York, N.Y.: ACM Press, pp. 60-73, 1990.
[16] J. Mostow and D. Cohen,“Automating program speedup by deciding what to cache,” Proc. Ninth Int’l Joint Conf. Artificial Intelligence,Menlo Park, Calif., pp. 165-172, 1985.
[17] R. Paige and S. Koenig, "Finite Differencing of Computable Expressions," ACM Trans. Programming Languages and Systems, vol. 4, no. 3, pp. 403-454, July 1982.
[18] Pure Software, Inc., Quantify User’s Guide.Sunnyvale, Calif.: Pure Software, Inc., 1993.
[19] W.L. Scherlis, “Program Improvement by Internal Specialization,” Conf. Record Eighth Ann. ACM Symp. Principles of Programming Languages, pp. 41-49, Jan. 1981.
[20] SPEC, SPEC Benchmark Suite Release 2.0. (CINT92 integer suite), Standard Performance Evaluation Cooperative, 1992.
[21] SunPro, Performance Tuning an Application. Sun Microsystems, 1992.
[22] The Unix (System V) Programmer’s Manual.

Index Terms:
Performance tuning, call path, profiling.
Robert J. Hall, "Call Path Refinement Profiles," IEEE Transactions on Software Engineering, vol. 21, no. 6, pp. 481-496, June 1995, doi:10.1109/32.391375
Usage of this product signifies your acceptance of the Terms of Use.