2008
DOI: 10.1145/1328195.1328197
|View full text |Cite
|
Sign up to set email alerts
|

Virtual machine showdown

Abstract: Virtual machines (VMs) enable the distribution of programs in an architecture-neutral format, which can easily be interpreted or compiled. A long-running question in the design of VMs is whether a stack architecture or register architecture can be implemented more efficiently with an interpreter. We extend existing work on comparing virtual stack and virtual register architectures in three ways. First, our translation from stack to register code and optimization are much more sophisticated. The result is that … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
7
0

Year Published

2011
2011
2019
2019

Publication Types

Select...
5
1
1

Relationship

0
7

Authors

Journals

citations
Cited by 80 publications
(7 citation statements)
references
References 34 publications
0
7
0
Order By: Relevance
“…The rationale behind this is that for frequently executed interpreter sequences, a superinstruction, comprising the single instructions of the sequence, eliminates the necessary interinstruction dispatches. Analogously, using a register-based architecture instead of the more common stack-based architecture helps to mitigate performance penalties incurred by instruction dispatch overhead [Shi et al 2008]. However, both of these techniques only shift the problem without solving it.…”
Section: Efficient Interpretationmentioning
confidence: 99%
See 2 more Smart Citations
“…The rationale behind this is that for frequently executed interpreter sequences, a superinstruction, comprising the single instructions of the sequence, eliminates the necessary interinstruction dispatches. Analogously, using a register-based architecture instead of the more common stack-based architecture helps to mitigate performance penalties incurred by instruction dispatch overhead [Shi et al 2008]. However, both of these techniques only shift the problem without solving it.…”
Section: Efficient Interpretationmentioning
confidence: 99%
“…In addition, Shi et al [2008] measured that load instructions for Java bytecode account for almost half of all executed interpreter instructions. Similar measurements for Python confirm that this observation holds for Python bytecode interpreters as well [Brunthaler 2011].…”
Section: Efficient Interpretationmentioning
confidence: 99%
See 1 more Smart Citation
“…An unsafe version of load elimination was used, in addition to some other optimizations, to check the impact on performance in the work of Shi et al [25]. This optimization was unsafe because no full escape and alias analysis was used and, therefore, no guarantee could be given that memory values were changed within other threads.…”
Section: Related Workmentioning
confidence: 99%
“…Although stack-and register-based languages have equivalent expressiveness and although programs for the latter are likely to be more readable, the former have some practical advantages [30]. Among the others, stack-based languages can be considerably simpler to verify, e.g., checking programs for correct variable usage can be performed by statically emulating stack operations instead of tracing variable uses and definitions across multiple, potentially complex code paths.…”
Section: Network Processing Elementmentioning
confidence: 99%