|
ABSTRACT
Calling context profiles are used in many inter-procedural code optimizations and in overall program understanding. Unfortunately, the collection of profile information is highly intrusive due to the high frequency of method calls in most applications. Previously proposed calling-context profiling mechanisms consequently suffer from either low accuracy, high overhead, or both. We have developed a new approach for building the calling context tree at runtime, called adaptive bursting. By selectively inhibiting redundant profiling, this approach dramatically reduces overhead while preserving profile accuracy. We first demonstrate the drawbacks of previously proposed calling context profiling mechanisms. We show that a low-overhead solution using sampled stack-walking alone is less than 50% accurate, based on degree of overlap with a complete calling-context tree. We also show that a static bursting approach collects a highly accurate profile, but causes an unacceptable application slowdown. Our adaptive solution achieves 85% degree of overlap and provides an 88% hot-edge coverage when using a 0.1 hot-edge threshold, while dramatically reducing overhead compared to the static bursting approach.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Colorado bench. http://www-plan.cs.colorado.edu/henkel/projects/colorado bench.
|
| |
2
|
Kawa, the java-based scheme system. http://www.gnu.org/software/kawa.
|
 |
3
|
Glenn Ammons , Thomas Ball , James R. Larus, Exploiting hardware performance counters with flow and context sensitive profiling, Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, p.85-96, June 16-18, 1997, Las Vegas, Nevada, United States
|
| |
4
|
|
 |
5
|
|
| |
6
|
M. Arnold and P. F. Sweeney. Approximating the calling context tree via sampling. IBM Research Report, July 2000.
|
 |
7
|
|
| |
8
|
A. R. Bernat and B. P. Miller. Incremental call-path profiling. Technical report, University of Wisconsin, 2004.
|
| |
9
|
|
| |
10
|
|
| |
11
|
Standard Performance Evaluation Corporation. Specjbb2000 java business benchmark. http://www.spec.org/jbb2000.
|
| |
12
|
Standard Performance Evaluation Corporation. Specjvm98 benchmarks. http://www.spec.org/jvm98.
|
| |
13
|
Standard Performance Evaluation Corporation. SPECjAppServer2004. http://www.spec.org/jAppServer2004.
|
| |
14
|
P. T. Feller. Value profiling for instructions and memory locations. Masters Thesis CS98-581, University of California San Diego, April 1998.
|
 |
15
|
|
 |
16
|
David Grove , Greg DeFouw , Jeffrey Dean , Craig Chambers, Call graph construction in object-oriented languages, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.108-124, October 05-09, 1997, Atlanta, Georgia, United States
|
| |
17
|
N. Grcevski, A. Kielstra, K. Stoodley, M. Stoodley, and V. Sundaresan. Java just-in-time compiler and virtual machine improvements for server and middleware applications. In Usenix 3rd Virtual Machine Research and Technology Symposium (VM'04), 2004.
|
 |
18
|
|
| |
19
|
|
| |
20
|
M. Hirzel and T. Chilimbi. Bursty tracing: A framework for lowoverhead temporal profiling. In In 4th ACM Workshop on Feedback- Directed and Dynamic Optimization (FDDO-4), December 2001.
|
 |
21
|
|
| |
22
|
P. Kessler S. Graham and M. McKusick. An execution profiler for modular programs. Software-Practice and Experience, 13(8):671--685, 1983.
|
| |
23
|
|
| |
24
|
|
 |
25
|
|
| |
26
|
|
CITED BY 9
|
|
|
|
|
Jungwoo Ha , Christopher J. Rossbach , Jason V. Davis , Indrajit Roy , Hany E. Ramadan , Donald E. Porter , David L. Chen , Emmett Witchel, Improved error reporting for software that uses black-box components, ACM SIGPLAN Notices, v.42 n.6, June 2007
|
|
|
Xiaotong Zhuang , Suhyun Kim , Mauri io Serrano , Jong-Deok Choi, Perfdiff: a framework for performance difference analysis in a virtual machine environment, Proceedings of the sixth annual IEEE/ACM international symposium on Code generation and optimization, April 05-09, 2008, Boston, MA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|