Do object-oriented languages need special hardware support?

Urs Hölzle and David Ungar
Abstract: Previous studies have shown that object-oriented programs have different execution characteristics than procedural programs, and that special object-oriented hardware can improve performance. The results of these studies may no longer hold because compiler optimizations can remove a large fraction of the differences. Our measurements show that SELF programs are more similar to C programs than are C++ programs, even though SELF is much more radically object-oriented than C++ and thus should differ much more from C.

Furthermore, the benefit of tagged arithmetic instructions in the SPARC architecture (originally motivated by Smalltalk and Lisp implementations) appears to be small. Also, special hardware could hardly reduce message dispatch overhead since dispatch sequences are already very short. Two generic hardware features, instruction cache size and data cache write policy, have a much greater impact on performance.

Technical Report TRCS 94-21, Computer Science Department, University of California, Santa Barbara, November 1994. Presented at ECOOP `95, Aarhus, Denmark, August 1995.

Here are the PostScript files of the tech report PDF and the ECOOP paper PDF.