Code Sharing among Virtual Machines

  • Authors:
  • Grzegorz Czajkowski;Laurent Daynès;Nathaniel Nystrom

  • Affiliations:
  • -;-;-

  • Venue:
  • ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Sharing of code among applications executing in separate virtual machines can lead to memory footprint reductions and to performance improvements. The design of a general and acceptable sharing mechanism is challenging because of several constraints: performance considerations, the possibility of dynamic class loading, dependencies between shared code and the runtime system, and the potential of adverse impact on the runtime's reliability and on ease of maintenance. This paper analyzes these tradeoffs in the context of two modifications to the Java驴 virtual machine (JVM驴). The first allows for sharing of bytecodes and class information across multiple virtual machines, each of which executes in a separate operating system process, using shared memory. The second additionally enables the sharing of dynamically compiled code. Their design and performance are evaluated against two other approaches: running each application in a separate instance of an unmodified virtual machine, and running all applications in a single instance of a multitasking virtual machine.