publication . Preprint . 2016

A Performance Survey on Stack-based and Register-based Virtual Machines

Fang, Ruijie; Liu, Siqi;
Open Access English
  • Published: 02 Nov 2016
Abstract
Virtual machines have been widely adapted for high-level programming language implementations and for providing a degree of platform neutrality. As the overall use and adaptation of virtual machines grow, the overall performance of virtual machines has become a widely-discussed topic. In this paper, we present a survey on the performance differences of the two most widely adapted types of virtual machines - the stack-based virtual machine and the register-based virtual machine - using various benchmark programs. Additionally, we adopted a new approach of measuring performance by measuring the overall dispatch time, amount of dispatches, fetch time, and execution...
Subjects
free text keywords: Computer Science - Programming Languages
Download from

[1] A. Bower B. McGlashan. The interpreter is dead (slow). isn't it? OOPSLA'99 Workshop: Simplicity, Performance and Portability in Virtual Machine design, 1999.

[2] T. P. Baker. Benchmarks and time metrics, 2016.

[3] Brian Davis, Andrew Beatty, Kevin Casey, David Gregg, and John Waldron. The case for virtual register machines. In Proceedings of the 2003 Workshop on Interpreters, Virtual Machines and Emulators, IVME '03, pages 41-49, New York, NY, USA, 2003. ACM.

[4] M. A. Ertl. Implementation of stack-based languages on register machines. PhD thesis, Technische Universitšat Wien, Austria, 1996. [OpenAIRE]

[5] M. Anton Ertl. Stack caching for interpreters. In Proceedings of the ACM SIGPLAN 1995 Conference on Programming Language Design and Implementation, PLDI '95, pages 315-327, New York, NY, USA, 1995. ACM. [OpenAIRE]

[6] Fabian Fagerholm. Perl 6 and the parrot virtual machine. 2005.

[7] R. Fang. Conceptual-inertia/conceptum: Optimized release. DOI: 10.5281/zenodo.160870, oct 2016.

[8] R. Fang. frjalex/memman: memman v0.1beta. DOI: 10.5281/zenodo.160466, oct 2016.

[9] Roberto Ierusalimschy and Luiz Henrique De Figueiredo. The implementation of lua 5.0. 2005.

[10] Jurgen Koslowski. Deterministic single-state 2pdas are turing-complete. Technischer Bericht, 2013.

[11] S. Liu. Conceptual-inertia/moment-of-inertia: Iitsec 2016 release. DOI: 10.5281/zenodo.161471., oct 2016.

[13] Peter U. Schulthess and Eduard P. Mumprecht. Reply to the case against stack-oriented instruction sets. SIGARCH Comput. Archit. News, 6(5):24-27, December 1977.

[14] Yunhe Shi, David Gregg, Andrew Beatty, and M. Anton Ertl. Virtual machine showdown: Stack versus registers. In Proceedings of the 1st ACM/USENIX International Conference on Virtual Execution Environments, VEE '05, pages 153-163, New York, NY, USA, 2005. ACM.

[15] GNU's Not UNIX. The gnu c library reference manual, date and time.

[16] P. Winterbottom and R. Pike. The design of the inferno virtual machine. 1997.

Abstract
Virtual machines have been widely adapted for high-level programming language implementations and for providing a degree of platform neutrality. As the overall use and adaptation of virtual machines grow, the overall performance of virtual machines has become a widely-discussed topic. In this paper, we present a survey on the performance differences of the two most widely adapted types of virtual machines - the stack-based virtual machine and the register-based virtual machine - using various benchmark programs. Additionally, we adopted a new approach of measuring performance by measuring the overall dispatch time, amount of dispatches, fetch time, and execution...
Subjects
free text keywords: Computer Science - Programming Languages
Download from

[1] A. Bower B. McGlashan. The interpreter is dead (slow). isn't it? OOPSLA'99 Workshop: Simplicity, Performance and Portability in Virtual Machine design, 1999.

[2] T. P. Baker. Benchmarks and time metrics, 2016.

[3] Brian Davis, Andrew Beatty, Kevin Casey, David Gregg, and John Waldron. The case for virtual register machines. In Proceedings of the 2003 Workshop on Interpreters, Virtual Machines and Emulators, IVME '03, pages 41-49, New York, NY, USA, 2003. ACM.

[4] M. A. Ertl. Implementation of stack-based languages on register machines. PhD thesis, Technische Universitšat Wien, Austria, 1996. [OpenAIRE]

[5] M. Anton Ertl. Stack caching for interpreters. In Proceedings of the ACM SIGPLAN 1995 Conference on Programming Language Design and Implementation, PLDI '95, pages 315-327, New York, NY, USA, 1995. ACM. [OpenAIRE]

[6] Fabian Fagerholm. Perl 6 and the parrot virtual machine. 2005.

[7] R. Fang. Conceptual-inertia/conceptum: Optimized release. DOI: 10.5281/zenodo.160870, oct 2016.

[8] R. Fang. frjalex/memman: memman v0.1beta. DOI: 10.5281/zenodo.160466, oct 2016.

[9] Roberto Ierusalimschy and Luiz Henrique De Figueiredo. The implementation of lua 5.0. 2005.

[10] Jurgen Koslowski. Deterministic single-state 2pdas are turing-complete. Technischer Bericht, 2013.

[11] S. Liu. Conceptual-inertia/moment-of-inertia: Iitsec 2016 release. DOI: 10.5281/zenodo.161471., oct 2016.

[13] Peter U. Schulthess and Eduard P. Mumprecht. Reply to the case against stack-oriented instruction sets. SIGARCH Comput. Archit. News, 6(5):24-27, December 1977.

[14] Yunhe Shi, David Gregg, Andrew Beatty, and M. Anton Ertl. Virtual machine showdown: Stack versus registers. In Proceedings of the 1st ACM/USENIX International Conference on Virtual Execution Environments, VEE '05, pages 153-163, New York, NY, USA, 2005. ACM.

[15] GNU's Not UNIX. The gnu c library reference manual, date and time.

[16] P. Winterbottom and R. Pike. The design of the inferno virtual machine. 1997.

Powered by OpenAIRE Open Research Graph
Any information missing or wrong?Report an Issue