Reconciling responsiveness with performance in pure object-oriented languages

被引:46
作者
Holzle, U [1 ]
Ungar, D [1 ]
机构
[1] SUN MICROSYST LABS,MT VIEW,CA 94043
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 1996年 / 18卷 / 04期
关键词
adaptive optimization; pause clustering; profile-based optimization; run-time compilation; type feedback;
D O I
10.1145/233561.233562
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Dynamically dispatched calls often limit the performance of object-oriented programs, since object-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 calls prevent standard interprocedural optimizations that depend on the availability of a static call graph. The SELF implementation described here offers two 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.
引用
收藏
页码:355 / 400
页数:46
相关论文
共 48 条
[1]  
AGESEN O, 1993, LECT NOTES COMPUTER, V707, P247
[2]  
AGESEN O, 1995, P 10 ANN C OBJ OR PR, P91
[3]  
AIGNER G, 1995, 9522 TRCS U CAL DEP
[4]  
*APPL, 1988, OBJ PASC US MAN
[5]  
CHAMBERS C, 1989, P OOPSLA 89 C ACM NE, P29
[6]  
CHAMBERS C, 1992, THESIS STANFORD U ST
[7]  
CHAMBERS C, 1993, 930305 UW CS TR U WA
[8]  
CHAMBERS C, 1991, P ACM SIGPLAN C OBJ, P1
[9]  
Chang B.W., 1993, P 6 ANN ACM S US INT, P45, DOI DOI 10.1145/168642.168647
[10]   PROFILE-GUIDED AUTOMATIC IN-LINE EXPANSION FOR C-PROGRAMS [J].
CHANG, PP ;
MAHLKE, SA ;
CHEN, WY ;
HWU, WMW .
SOFTWARE-PRACTICE & EXPERIENCE, 1992, 22 (05) :349-369