The Structure and Performance of Interpreters

  • Theodore H. Romer ,
  • Dennis Lee ,
  • Geoffrey M. Voelker ,
  • ,
  • Wayne A. Wong ,
  • Jean-Loup Baer ,
  • Brian N. Bershad ,
  • Henry M. Levy

ASPLOS VII Proceedings of the seventh international conference on Architectural support for programming languages and operating systems |

Published by ACM Press

Publication

Interpreted languages have become increasingly popular due to demands for rapid program development, ease of use, portability, and safety. Beyond the general impression that they are “slow,” however, little has been documented about the performance of interpreters as a class of applications.This paper examines interpreter performance by measuring and analyzing interpreters from both software and hardware perspectives. As examples, we measure the MIPSI, Java, Perl, and Tcl interpreters running an array of micro and macro benchmarks on a DEC Alpha platform. Our measurements of these interpreters relate performance to the complexity of the interpreter’s virtual machine and demonstrate that native runtime libraries can play a key role in providing good performance. From an architectural perspective, we show that interpreter performance is primarily a function of the interpreter itself and is relatively independent of the application being interpreted. We also demonstrate that high-level interpreters’ demands on processor resources are comparable to those of other complex compiled programs, such as gcc. We conclude that interpreters, as a class of applications, do not currently motivate special hardware support for increased performance.