ACM Home Page
Please provide us with feedback. Feedback
CCCP: complete calling context profiling in virtual execution environments
Full text PdfPdf (432 KB)
Source
ACM/SIGPLAN Workshop Partial Evaluation and Semantics-Based Program Manipulation archive
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation table of contents
Savannah, GA, USA
SESSION: Slicing and profiling table of contents
Pages 151-160  
Year of Publication: 2009
ISBN:978-1-60558-327-3
Authors
Philippe Moret  University of Lugano, Lugano, Switzerland
Walter Binder  University of Lugano, Lugano, Switzerland
Alex Villazon  University of Lugano, Lugano, Switzerland
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 39,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1480945.1480967
What is a DOI?

ABSTRACT

Calling context profiling is an important technique for locating hotspots in programs. The prevailing data structure is the Calling Context Tree (CCT) that provides dynamic metrics for each calling context. Existing approaches to calling context profiling in Java either limit portability due to the use of native code or of a modified Java Virtual Machine, create incomplete and inaccurate CCTs, or cause excessive overhead. In this paper, we introduce Complete Calling Context Profiling (CCCP), a new approach that reconciles completeness and accuracy of the created CCTs, portability, and moderate overhead. CCCP relies on a generic bytecode instrumentation framework ensuring comprehensive bytecode coverage, including also the standard Java class library. In order to reduce the overhead of accessing the current CCT node, CCCP transforms code such that the caller passes its CCT node to the callee as a special method argument, while ensuring compatibility with native code, reflection, and stack introspection. We use the resulting CCTs for a detailed analysis of the dynamic behavior of Java systems and present a thorough analysis of the origin of runtime overheads.


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
2
3
 
4
M. Arnold and P. F. Sweeney. Approximating the calling context tree via sampling. Research report, IBM, July 2000.
5
 
6
7
8
9
 
10
 
11
 
12
R. Covington, S. Dwarkadas, J. Jump, J. Sinclair, and S. Madala. The efficient simulation of parallel computer systems. International Journal in Computer Simulation, 1:31--58, 1991.
 
13
M. Dahm. Byte code engineering. In Java-Information-Tage 1999 (JIT'99), Sept. 1999. http://jakarta.apache.org/bcel/
14
15
16
 
17
 
18
ObjectWeb. ASM. Web pages at http://asm.objectweb.org/
 
19
 
20
 
21
Sun Microsystems, Inc. Java Virtual Machine Profiler Interface (JVMPI). Web pages at http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/, 2000.
 
22
The Standard Performance Evaluation Corporation. SPEC JVM98 Benchmarks. Web pages at http://www.spec.org/osg/jvm98/, 1998.
23
 
24
25
 
26
T. Wilkinson. Kaffe -- a Java virtual machine. Web pages at http://www.kaffe.org/
27

Collaborative Colleagues:
Philippe Moret: colleagues
Walter Binder: colleagues
Alex Villazon: colleagues