Dynamic instrumentation for Java using a virtual JVM

  • Authors:
  • Kwok Yeung;Paul H. J. Kelly;Sarah Bennett

  • Affiliations:
  • Department of Computing, Imperial College, London, UK;Department of Computing, Imperial College, London, UK;Department of Computing, Imperial College, London, UK

  • Venue:
  • Performance analysis and grid computing
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Dynamic instrumentation, meaning modification of an application's instructions at run-time in order to monitor its behaviour, is a very powerful foundation for a wide range of program manipulation tools. This paper concerns the problem of implementing dynamic instrumentation for a managed run-time environment such as a Java Virtual Machine (JVM). We present a flexible new approach based on a "virtual" JVM, which runs above a standard JVM but intercepts application control flow in order to allow it to be modified at run-time. Our Veneer Virtual JVM works by fragmenting each method's bytecode at specified points (such as basic blocks). The fragmentation process can include static analysis passes which associate dependence and liveness metadata with each block in order to facilitate run-time optimisation. We conclude with some preliminary performance results, and discuss further applications of the tool.