Message Dispatch on Pipelined Processors

  • Authors:
  • Karel Driesen;Urs Hölzle;Jan Vitek

  • Affiliations:
  • -;-;-

  • Venue:
  • ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

Object-oriented systems must implement message dispatch efficiently in order not to penalize the object-oriented programming style. We characterize the performance of most previously published dispatch techniques for both statically- and dynamically-typed languages with both single and multiple inheritance. Hardware organization (in particular, branch latency and superscalar instruction issue) significantly impacts dispatch performance. For example, inline caching may outperform C++-style "vtables" on deeply pipelined processors even though it executes more instructions per dispatch.We also show that adding support for dynamic typing or multiple inheritance does not significantly impact dispatch speed for most techniques, especially on superscalar machines. Instruction space overhead (calling sequences) can exceed the space cost of data structures (dispatch tables), so that minimal table size may not imply minimal run-time space usage.