Project Rocky: The Architectural Performance of Interpreted Languages

Project Description

Interpreted languages have become increasingly popular over the last several years, due in part to the demands for portability, safety, and ease of use. This project examines the performance of interpreted languages and environments from several perspectives: interpretation strategy, implementation, and processor/architecture utilization. As a basis for our study, we have collected a set of benchmarks and microbenchmarks which are implemented in several interpreted languages -- Perl, Tcl, Java, and MIPSI. Using various instrumentation and tracing techniques, we evaluate the performance characteristics of those benchmarks in order to gain insight into the similarities and differences in these languages and their execution environments. Our analysis shows that the performance of an interpreted program is attributable to a large extent to the virtual machine model defined by the interpreter. Using trace-driven simulation, we show that the CPU behavior of an interpreted program is largely independent of the program being interpreted, but is closely tied to the interpreter itself. With this, we demonstrate that interpreter performance is comparable to that of other complex programs found in contemporary benchmarking suites.

People

Faculty: Students:

Papers

Romer, Lee, Voelker, Wolman, Wong, Baer, Bershad, and Levy, The Structure and Performance of Interpreters, ASPLOS VII, to appear.

Tools

To collect information on the performance of x86 applications, we've been building a binary rewriting tool called Etch. Etch is not yet publicly available, but you can read about it on the Etch home page.

Internal Documentation

Project internal documentation (available only to people from UW CSE).
Last updated July 24, 1996.
romer@cs.washington.edu