Technical Program
  Invited Speakers
  Technical Papers
  Practitioner Reports
Educators' Symposium
Doctoral Symposium
Student Research Comp.
Turing Lecture
Social Events
Week at a Glance
Final Program (1.5M .pdf)

Find in Program


view, help

"Instrumentation of Standard Libraries in Object-Oriented Languages: the Twin Class Hierarchy Approach"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps
  > Technical Program > Technical Papers > Performance

 : Wednesday

Instrumentation of Standard Libraries in Object-Oriented Languages: the Twin Class Hierarchy Approach

Ballroom A-B
Wednesday, 16:30, 30 minutes


Konstantin Shagin, Technion—Israel Institute of Technology
Assaf Schuster, Technion—Israel Institute of Technology
Michael Factor, IBM Research Lab in Haifa

Code instrumentation is widely used for a range of purposes including profiling, debugging, visualization, logging, and distributed computing. Due to their special status within the language infrastructure, the standard class libraries, also known as system classes, 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, since it is equivalent to "instrumenting the instrumentation," it 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. Our approach 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 modifying any runtime components. We demonstrate our approach by implementing two instrumentation-based systems: a memory profiler and a distributed runtime for Java.