Rethinking the Java software stack: Optimisation opportunities in the face of hardware resource virtualisation

by Gousios, Georgios

You can get a pre-print version from here.

Abstract

The purpose of the jvm is to abstract the Java language from the hardware and software platforms it runs on. Currently, there is an obvious duplication of effort in service provision and resource management between the JVM and the operating system that has a measurable cost on the performance of Java programs. The emergence of efficient hardware resource virtualisation mechanisms presents implementers with new opportunities for optimising the Java software execution stack. In this paper, we examine the sources of the runtime overhead imposed on the Java programming language by the native execution environment. We use both synthetic and real world applications as benchmarks along with modern instrumentation tools to measure this overhead. We base our measurements on the assumption that the jvm can be directly hosted on virtualised hardware. Based on our findings, we also propose a cost estimation heuristic, which allows us to estimate the minimal gain to be expected when applications will be moved to hypervisor-hosted virtual machines.

Bibtex record

@techreport{Gousi07,
  author = {Gousios, Georgios},
  institution = {Athens University of Economics and Business},
  month = jan,
  title = {Rethinking the Java software stack: Optimisation opportunities in the face of hardware resource virtualisation},
  url = {/pub/java-optimisation-opportunities-hardware-resource-virtualisation.pdf},
  year = {2007},
  bdsk-url-1 = {/pub/java-optimisation-opportunities-hardware-resource-virtualisation.pdf}
}

The paper