ACM Home Page
Please provide us with feedback. Feedback
Instrumentation of standard libraries in object-oriented languages: the twin class hierarchy approach
Full text PdfPdf (227 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Vancouver, BC, Canada
SESSION: Performance table of contents
Pages: 288 - 300  
Year of Publication: 2004
ISBN:1-58113-831-9
Also published in ...
Authors
Michael Factor  IBM Research Lab in Haifa, Haifa University Campus, Haifa, Israel
Assaf Schuster  Israel Institute of Technology, Technion City, Haifa, Israel
Konstantin Shagin  Israel Institute of Technology, Technion City, Haifa, Israel
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 60,   Citation Count: 5
Additional Information:

abstract   references   cited by   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/1028976.1029000
What is a DOI?

ABSTRACT

Code instrumentation is widely used for a range of purposes that include profiling, debugging, visualization, logging, and distributed computing. Due to their special status within the language infrastructure, the <i>standard class libraries</i>, also known as <i>system classes</i> provided by most contemporary object-oriented languages are difficult and sometimes impossible to instrument. If instrumented, the use of their rewritten versions within the instrumentation code is usually unavoidable. However, this is equivalent to `instrumenting the instrumentation', and thus may lead to erroneous results. Consequently, most systems avoid rewriting system classes. We present a novel instrumentation strategy that alleviates the above problems by renaming the instrumented classes. The proposed approach does not require any modifications to the language, compiler or runtime. It allows system classes to be instrumented both statically and dynamically. In fact, this is the first technique that enables dynamic instrumentation of Java system classes without modification of any runtime components. We demonstrate our approach by implementing two instrumentation-based systems: a memory profiler and a distributed runtime for Java.


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
The AspectJ home page. http://eclipse.org/aspectj/.
 
2
The AspectWerkz home page. http://aspectwerkz.codehaus.org.
 
3
The Cougaar Memory Profiler home page. http://cougaar.org/projects/profiler/ or http://profiler.cougaar.org.
 
4
The JBoss AOP project home page. http://www.jboss.org/developers/projects/jboss/aop.jsp.
 
5
The Standard Performance Evaluation Corporation. SPEC JBB 2000. http://www.spec.org/osg/jbb2000/.
 
6
J. M. Bull, L. A. Smith, M. D. Westhead, D. S. Henty, and R. A. Davey. A benchmark suite for high performance Java. Concurrency: Practice and Experience, 12(6):375--388, 2000.
 
7
 
8
G. Cohen, J. Chase, and D. Kaminsky. Automatic program transformation with JOIE. In 1998 USENIX Annual Technical Symposium, pages 167--178, 1998.
 
9
M. Dahm. Byte code engineering. In Java-Informations-Tage, pages 267--277, 1999.
 
10
 
11
M. Factor, A. Schuster, and K. Shagin. JavaSplit: A runtime for execution of monolithic Java programs on heterogeneous collections of commodity workstations. In IEEE Fifth Int'l. Conference on Cluster Computing, pages 110--119, Hong Kong, December 2003.
 
12
 
13
G. Kniesel, P. Costanza, and M. Austermann. JMangler -- a framework for load-time transformation of Java class files. In IEEE International Workshop on Source Code Analysis and Manipulation (SCAM), 2001.
 
14
T. Lindholm and F. Yellin. The JVM Specification, 2nd edition. Addison-Wesley, 1999.
 
15
 
16


Collaborative Colleagues:
Michael Factor: colleagues
Assaf Schuster: colleagues
Konstantin Shagin: colleagues