2017 22nd International Conference on Engineering of Complex Computer Systems (ICECCS) (2017)
Nov. 5, 2017 to Nov. 8, 2017
Dynamic analysis is crucial for understanding and improving the performance of complex systems. Our work focuses on dynamic analyses on the Java Virtual Machine (JVM). Such analyses often rely on bytecode instrumentation to weave monitoring code into selected methods, so as to collect the desired metrics at runtime. Unfortunately, existing instrumentation frameworks offer limited capabilities. On the one hand, frameworks such as AspectJ that perform the weaving within the observed JVM cannot weave monitoring code within the Java class library, considerably limiting completeness of AspectJ-based analyses. On the other hand, frameworks such as DiSL that perform the weaving in a separate process offer full bytecode coverage, but cannot access certain reflective information that is available in AspectJ. Here, we present an extension of DiSL to expose reflective supertype information within the instrumentation process. This is challenging, because the observed application may make use of custom classloaders and the loaded classes are generally only known upon termination of the application. Our framework guarantees full bytecode coverage, while providing reflective supertype information. We show that our framework can significantly speed up dynamic analyses wrt. the current DiSL release.
Java, object-oriented programming, software libraries, systems analysis, virtual machines
A. Rosa and W. Binder, "Speeding Up Type-Specific Instrumentation for the Analysis of Complex Systems," 2017 22nd International Conference on Engineering of Complex Computer Systems (ICECCS), Fukuoka, Japan, 2018, pp. 138-141.