The Space Overhead of Customization

  • Authors:
  • Sylvia Dieckmann;Urs Holzle

  • Affiliations:
  • -;-

  • Venue:
  • The Space Overhead of Customization
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

Customization aims to improve the performance of pure object-oriented languages by compiling multiple copies of a source method, each of them specialized for a certain revceiver type. Like other code duplication techniques, it gains performance by trading code space for better speed. Unfortunately, customization can significantly increase code space, especially for larger programs. We show that customization increases memory usage by almost a factor of three for some applications in the Self-93 system. We analyze and quantify the factors that lead to this space overhead and identify strategies to eliminate most of it. We focus on dynamically-compiled systems like Self-93 where it is impractical or undesirable to use whole-program analysis or programmer-directed profiling to guide customization decisions. Our experiments show that a combination of relatively straightforward strategies can bring the code space consumption of customization to within 34% or less of a completely non-customizing system. Thus, even in dynamically-compiled systems customization and efficient memory usage need not be mutually exclusive.