A quantitative analysis of Java bytecode sequences

  • Authors:
  • Ben Stephenson;Wade Holst

  • Affiliations:
  • University of Western Ontario, London, Ontario, Canada;University of Western Ontario, London, Ontario, Canada

  • Venue:
  • Proceedings of the 3rd international symposium on Principles and practice of programming in Java
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

A variety of studies have been performed which analyse the bytecodes executed by a Java Virtual Machine (JVM). The simplest of these studies perform a static analysis of the bytecodes in the classes that make up the program [1]. Other studies have examined the dynamic behaviour of the program, only considering those individual bytecodes that are actually executed [2, 3]. Dynamic studies have also been extended to determine which bytecode pairs are commonly executed [4]. This work builds on these previous studies by extending the dynamic analysis from bigrams (bytecode pairs) to multicodes (variable length sequences) up to 20 bytecodes in length. The algorithms used to determine the multicodes are presented in addition to the most commonly occurring multicodes for a selection of benchmarks. Determining these multicodes is relevant to research into instruction set design. It is also directly applicable to interpreter optimization techniques such as super operators [5] and just-in-time compiler optimization techniques including bytecode idioms [6].