Profile-guided receiver class prediction
Authors:
Open Access
- 17 October 1995
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 30 (10) , 108-123
Abstract
The use of dynamically-dispatched procedure calls is a key mechanism for writing extensible and flexible code in object-oriented languages. Unfortunately, dynamic dispatching imposes a runtime performance penalty. Some recent implementations of pure object-oriented languages have utilized profile-guided receiver class prediction to reduce this performance penalty, and some researchers have argued for applying receiver class prediction in hybrid languages like C++. We performed a detailed examination of the dynamic profiles of eight large object-oriented applications written in C++ and Cecil, determining that the receiver class distributions are strongly peaked and stable across both inputs and program versions through time. We describe techniques for gathering and manipulating profile information at varying degrees of precision, particularly in the presence of optimizations such as inlining. Our implementation of profile-guided receiver class prediction improves the performance of large Cecil applications by more than a factor of two over solely static optimizations.Keywords
This publication has 13 references indexed in Scilit:
- Type feedback vs. concrete type inference1995
- Simple and effective link-time optimization of Modula-3 programs1995
- Optimizing dynamically-dispatched calls with run-time type feedback1994
- Profile‐guided automatic inline expansion for C programsSoftware: Practice and Experience, 1992
- Object-oriented type inferenceACM SIGPLAN Notices, 1991
- Predicting program behavior using real or estimated profilesACM SIGPLAN Notices, 1991
- Iterative type analysis and extended message splitting; optimizing dynamically-typed object-oriented programsACM SIGPLAN Notices, 1990
- Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming languageACM SIGPLAN Notices, 1989
- Rcs — a system for version controlSoftware: Practice and Experience, 1985
- Efficient implementation of the smalltalk-80 system1984