Profile-guided receiver class prediction

  • Authors:
  • David Grove;Jeffrey Dean;Charles Garrett;Craig Chambers

  • Affiliations:
  • Department of Computer Science and Engineering, Box 352530, University of Washington, Seattle, WA;Department of Computer Science and Engineering, Box 352530, University of Washington, Seattle, WA;Department of Computer Science and Engineering, Box 352530, University of Washington, Seattle, WA;Department of Computer Science and Engineering, Box 352530, University of Washington, Seattle, WA

  • Venue:
  • Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

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.