Abstract
Managed Runtime Environments (MREs), such as the JVM and
the CLI, form an attractive environment for program execution, by
providing portability and safety, via the use of a bytecode language
and automatic memory management, as well as good performance,
via just-in-time (JIT) compilation. Nevertheless, developing a fully
featured MRE, including e.g. a garbage collector and JIT compiler,
is a herculean task. As a result, new languages cannot easily take
advantage of the benefits of MREs, and it is difficult to experiment
with extensions of existing MRE based languages.
This paper describes and evaluates VMKit, a first attempt to
build a common substrate that eases the development of high-level
MREs. We have successfully used VMKit to build two MREs: a
Java Virtual Machine and a Common Language Runtime. We provide
an extensive study of the lessons learned in developing this
infrastructure, and assess the ease of implementing new MREs or
MRE extensions and the resulting performance. In particular, it
took one of the authors only one month to develop a Common
Language Runtime using VMKit. VMKit furthermore has performance
comparable to the well established open source MREs Cacao,
Apache Harmony and Mono, and is 1.2 to 3 times slower than
JikesRVM on most of the DaCapo benchmarks.
the CLI, form an attractive environment for program execution, by
providing portability and safety, via the use of a bytecode language
and automatic memory management, as well as good performance,
via just-in-time (JIT) compilation. Nevertheless, developing a fully
featured MRE, including e.g. a garbage collector and JIT compiler,
is a herculean task. As a result, new languages cannot easily take
advantage of the benefits of MREs, and it is difficult to experiment
with extensions of existing MRE based languages.
This paper describes and evaluates VMKit, a first attempt to
build a common substrate that eases the development of high-level
MREs. We have successfully used VMKit to build two MREs: a
Java Virtual Machine and a Common Language Runtime. We provide
an extensive study of the lessons learned in developing this
infrastructure, and assess the ease of implementing new MREs or
MRE extensions and the resulting performance. In particular, it
took one of the authors only one month to develop a Common
Language Runtime using VMKit. VMKit furthermore has performance
comparable to the well established open source MREs Cacao,
Apache Harmony and Mono, and is 1.2 to 3 times slower than
JikesRVM on most of the DaCapo benchmarks.
Original language | English |
---|---|
Title of host publication | Proceedings of the 6th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments |
Number of pages | 11 |
Publisher | Association for Computing Machinery |
Publication date | 2010 |
Pages | 51-61 |
ISBN (Electronic) | 978-1-60558-910-7 |
DOIs | |
Publication status | Published - 2010 |
Event | 6th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments - Pittsburgh, United States Duration: 17 Mar 2010 → 19 Mar 2010 Conference number: 6 |
Conference
Conference | 6th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments |
---|---|
Number | 6 |
Country/Territory | United States |
City | Pittsburgh |
Period | 17/03/2010 → 19/03/2010 |