ACM Home Page
Please provide us with feedback. Feedback
Reconciling responsiveness with performance in pure object-oriented languages
Full text PdfPdf (537 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 18 ,  Issue 4  (July 1996) table of contents
Pages: 355 - 400  
Year of Publication: 1996
ISSN:0164-0925
Authors
Urs Hölzle  Department of Computer Science, University of California, Santa Barbara, CA
David Ungar  Sun Microsystems Laboratories, 2550 Garcia Avenue, Mountain View, CA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 51,   Citation Count: 28
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/233561.233562
What is a DOI?

ABSTRACT

Dynamically dispatched calls often limit the performance of object-oriented programs, since opject-oriented programming encourages factoring code into small, reusable units, thereby increasing the frequency of these expensive operations. Frequent calls not only slow down execution with the dispatch overhead per se, but more importantly they hinder optimization by limiting the range and effectiveness of standard global optimizations. In particular, dynamically dispatched calles prevent standard interprocedual optimizations that depend on the availability of a static call graph. The SELF implementation described here offers tow novel approaches to optimization. Type feedback speculatively inlines dynamically dispatched calls based on profile information that predicts likely receiver classes. Adaptive optimization reconciles optimizing compilation with interactive performance by incrementally optimizing only the frequently executed parts of a program. When combined, these two techniques result in a system that can execute programs significantly faster than previous systems while retaining much of the interactiveness of an interpreted system.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
 
3
 
4
APPLE. 1988. Object Pascal User's Manual. Apple Computer, Inc., Cupertino, Calif.
 
5
 
6
CHAMBERS, C. 1993. The Cecil language--Specification and rationale. Tech. Rep. UW CS TR 93-03-05, Dept. of Computer Science, Univ. of Washington, Seattle, Wash.
7
8
9
 
10
 
11
 
12
 
13
14
 
15
 
16
DEUTSCH, L. P. 1983. The Dorado Smalltalk-80 implementation: Hardware architecture's impact on software architecture. In Smalltalk-80: Bits of History and Words of Advice, G. Krasner, Ed. Addison-Wesley, Reading, Mass.
17
18
19
 
20
GRAHAM, S. L., KESSLER, P. B., AND McKuSICK, M. K. 1983. An execution profiler for modular programs. Softw. Pract. Exper. 13, 671-685.
21
22
 
23
 
24
 
25
 
26
 
27
28
 
29
30
31
 
32
IRLAM, G. 1991. SPA--SPARC analyzer tool set. Available via ftp from cs.adelaide.edu.au.
 
33
ISE. 1993. ISE Eiffel 3.0. Software. ISE, Inc., Santa Barbara, Calif.
34
35
 
36
 
37
PANDE, H. AND RYDER, B. 1994. Static type determination for C++. Tech. Rep. LCSR-TR- 197a, Rutgers Univ., Piscataway, N.J.
 
38
PARCPLACE. 1992. VisualWorks 1.0 Smalltalk System. Software. ParcPlace Systems, Sunnyvale, Calif.
39
 
40
 
41
SILICON GRAPHICS. 1993. SGI Delta C++ programming environment. Silicon Graphics, Inc., Mountain View, Calif. Software.
 
42
 
43
SRIVASTAVA, A. AND WALL, D. 1992. A practical system for intermodule code optimization at link-time. DEC WRL Res. Rep. 92/6, Digital Equipment Corp., Palo Alto, Calif.
44
 
45
VAN DYKE, E. 1977. A dynamic incremental compiler for an interpretative language. HP J. 28, 3 (July), 17-24.
46
47

CITED BY  28


REVIEW

"Scott R. Tilley : Reviewer"

Two optimizations used to accelerate the execution of SELF code are described. The first, “type feedback,” uses runtime type information to guide code optimization by inlining calls to certain object types that occur more often tha  more...

Collaborative Colleagues:
Urs Hölzle: colleagues
David Ungar: colleagues