The Behavior of Efficient Virtual Machine Interpreters on Modern Architectures

  • Authors:
  • M. Anton Ertl;David Gregg

  • Affiliations:
  • -;-

  • Venue:
  • Euro-Par '01 Proceedings of the 7th International Euro-Par Conference Manchester on Parallel Processing
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

Romer et al (ASPLOS 96) examined several interpreters and concluded that they behave much like general purpose integer programs such as gcc. We show that there is an important class of interpreters which behave very differently. Efficient virtual machine interpreters perform a large number of indirect branches (3.2%-13% of all executed instructions in our benchmarks, taking up to 61%-79% of the cycles on a machine with no branch prediction). We evaluate how various branch prediction schemes and methods to reduce the mispredict penalty affect the performance of several virtual machine interpreters. Our results show that for current branch predictors, threaded code interpreters cause fewer mispredictions, and are almost twice as fast as switch based interpreters on modern superscalar architectures.