Report ID
1997-21
Report Authors
Sylvia Dieckmann and Urs Hï½lzle
Report Date
Abstract
Customization aims to improve the performance of pure object-oriented languagesby compiling multiple copies of a source method, each of them specialized for acertain revceiver type. Like other code duplication techniques, it gainsperformance by trading code space for better speed. Unfortunately,customization can significantly increase code space, especially for largerprograms. We show that customization increases memory usage by almost a factorof three for some applications in the Self-93 system.We analyze and quantify the factors that lead to this space overhead andidentify strategies to eliminate most of it. We focus on dynamically-compiledsystems like Self-93 where it is impractical or undesirable to usewhole-program analysis or programmer-directed profiling to guide customizationdecisions. Our experiments show that a combination of relativelystraightforward strategies can bring the code space consumption ofcustomization to within 34% or less of a completely non-customizing system.Thus, even in dynamically-compiled systems customization and efficient memoryusage need not be mutually exclusive.