Next: General Approach Up: The pC++ Performance Previous: The pC++ Performance

Profiling pC++ Programs

In general, a very valuable tool for program tuning is function profiling. Simply, special instrumentation code is inserted at all entry and exit points of each function. This code captures data that can be used to calculate the number of times this function is called and the percentage of the total execution time spent in that routine. The necessary computations can be carried out in two ways: 1) the profile analysis can be directly performed at runtime (direct profiling), or 2) all entry and exit points of a function can be traced and calculations done off-line (trace-based profiling).

For pC++, we are interested in capturing performance profiling data associated with three general classes of functions: 1) thread-level functions, 2) collection class methods, and 3) runtime system routines. The data we want to capture includes activation counts, execution time, and, in the case of collections, referencing information.



mohr@cs.uoregon.edu
Thu Feb 24 13:42:43 PST 1994