skip to main content
10.1145/237090.237175acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
Article
Free access

The structure and performance of interpreters

Published: 01 September 1996 Publication History

Abstract

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.

References

[1]
Adl-Tabatabai, A., Langdale, G., Lucco, S., and Wahbe, R. Efficient and Language-Independent Mobile Programs. In Proceedings of the 1996 ACM Symposium on Programming Languages Design and Implementation, pages 127-136, May 1996.
[2]
Afzal, T., Brenternitz, M., Kacher, M., Menyher, S., Ommerman, M., and Su, W. Motorola PowerPC Migration Tools - Emulation and Transition. In Digest ofPapers, COMPCON '96, pages 145-150, February 1996.
[3]
Alexander, W. G. and Wortman, D, B. Static and Dynamic Characteristics of XPL Programs. IEEE Computer, 8(11):41--46, November 1975.
[4]
Andrews, K. and Sand, D. Migrating a CISC Computer Family onto RISC via Object Code Translation. In Proceedings of the Fifth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 213-222, October 1992.
[5]
Bell, J. Threaded Code. Communications of the ACM, 16(6):370-372, June 1973.
[6]
Calder, B., Grunwald, D., and Zorn, B. Quantifying Behavioral Differences Between C and C++ Programs. Technical Report CU-CS-698, University of Colorado-Boulder, January 1994.
[7]
Clark, D. W. and Levy, H. M. Measurement and Analysis of Instruction Use on the VAX- 11/780. In Proceedings of the 9th Annual Symposium on Computer Architecture, April 1982.
[8]
Cmelik, R. E and Keppel, D. Shade: A Fast Instruction-Set Simulator for Execution Profiling. In Proceedings of the 1994 ACM SIGMETRICS Conference on Measurement and Modeling of Computer Systems, pages 128-137, May 1994.
[9]
Deutsch, L. P. and Schiffman, A. M. Efficient Implementation of the Smalltalk-80 System. In Conference R~eo rd of th~ Eleventh Annual A CM Symposium on Principles of Programming Languages, pages 297-302, Salt Lake City, Utah, January 1984.
[10]
Ditzel, D, and Patterson, D. Retrospective on Highlevel Language Computer Architecture. In Proceedings of the 7th Annual Symposium on Computer Architecture, pages 97- 104, La Baule, France, June 1980.
[11]
Diwan, A., Tarditi, D., and Moss,E. Memory System Performance of Programs with Intensive Heap Allocation. ACM Transactions on Computer Systems, 13(3):244-273, August 1995.
[12]
Elshoff, J. An Analysis of Some Commercial PL/1 Programs. IEEE Transactions on Software Engineering, 2:113-120, June 1976.
[13]
Flynn, M. J. Directions and Issues in Architecture and Language. IEEE Computer, 13(10):5-22, October 1980.
[14]
Foster, C. C., Gonter, R. H., and Riseman, E. M. Measures of Opcode Utilizations, IEEE Transactions on Computers, 13:582-584, May 1971.
[15]
Goncalves, M. and Appel, A. Cache Performance of Fast-Allocating Programs. In Proceedings of the Seventh International Conference of Functional Programming and Computer Architecture, pages 293-305, June 1995.
[16]
Hennessy, J. L. and Patterson, D. A. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, Palo Alto, CA, 1990.
[17]
Holzlc, U. and Ungar, D. Do Object-Oriented Languages Need Special Hardware Support? In ECOOP '95 - Object-Orented Programming, pages 283-202. Springer- Verlag, August 1995.
[18]
Kane, G. and Heinrich, J. MIPS RISC Architecture. Prentice Hall, Englewood Cliffs, NJ, 1992.
[19]
Klint, P. Interpretation Techniques. Software- Practice and Experience, 11(9):963-973, September 1981.
[20]
Maynard, A. G., Donnelly, C. M., and Olszewski, B, R. Contrasting Characteristics and Cache Performance of Technical and Multi-user Commercial Workloads. In Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 145-156, San Jose, California, October 1994.
[21]
Meyers, G. J. Advances in Computer Architecture. Wiley, NY, 1982.
[22]
Moon, D. A. Symbolics Architecture. IEEE Computer, pages 43-54, January 1987.
[23]
Ousterhout, J. Tcl and the Tk Toolkit. Addision-Wesley, Reading, MA, 1994.
[24]
Ousterhout, J. What's Happening at Sun Labs. http://www, sunlabs.com/research/tcl/team.html, April 1996.
[25]
Sirer, E. G. Measuring Limits of Fine-Grain Parallelism. Princeton University Senior Project, June 1993.
[26]
Sites, R. L., Chernoff, A., Kirck, M. B., Marks, M. P., and Robinson, S. G. Binal3' Translation. Digital Technical Journal, 4(4):137-152, 1992.
[27]
Smith, W. R., Rice, R. R., Chesley, G. D., Laliotis, T. A., Lundstrom, S. F., Chalhoun, M. A., Gerould, L. D., and Cook, T.C. SYMBOL: A Large Experimental System Exploring Major Hardware Replacement of Software. In Proceedings AFIPS Spring Joint Computer Conference, pages 601-616, 1971.
[28]
Srivastava, A. and Eustace, A. ATOM: A System for Building Customized Program Analysis Tools. In Proceedings of the 1994 ACM Symposium on Programming Languages Design and Implementation, pages 196-205. ACM, 1994.
[29]
Sun Microsystems. The Java Virtual Machine Specification. http://java.sun.com/doc/vmspec/html/vmspec- 1.html, 1995.
[30]
Symantec Corporation. Symantec Cafe. http://cafe.symantec.com, June 1996.
[31]
Tullsen, D., Eggers, S., and Levy, H. Simultaneous Multithreading: Maximizing On-Chip Parallelism. In Proceedings of the 22nd Annual Symposium on Computer Architecture, pages 392-403, June 1995,
[32]
Uhlig, R., Nagle, D., Mudge, T., Sechrest, S., and Emer, J. Instruction Fetching: Coping with Code Bloat. In Proceedings of the 22nd Annual Symposium on Computer Architecture, pages 345-356, June 1995.
[33]
Ungar, D. and Patterson, D. At What Price Smalltalk. IEEE Computer, 20(I):67-74, January 1987.
[34]
Wall, L. and Schwartz, R. Programming Perl. O'Reilly and Aggoeiateg, inc., Sebagtopol, CA, 1990.
[35]
Wilkinson, T. KAFFE - A Virual Machine to Run Java(tm) Code. http://web.soi.city.ac.uk/homes/tim/kaffe/kaffe,html, 1996.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASPLOS VII: Proceedings of the seventh international conference on Architectural support for programming languages and operating systems
October 1996
290 pages
ISBN:0897917677
DOI:10.1145/237090
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 September 1996

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

ASPLOS96
Sponsor:

Acceptance Rates

ASPLOS VII Paper Acceptance Rate 25 of 109 submissions, 23%;
Overall Acceptance Rate 535 of 2,713 submissions, 20%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)284
  • Downloads (Last 6 weeks)36
Reflects downloads up to 05 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media