Fast Object Operations in a Persistent Programming System

Andrew C. Myers · DSpace@MIT (Massachusetts Institute of Technology) · 1994

Object-oriented, persistent programming languages oer a simple model for the programmer to write applications that share data, even among heterogeneous systems.However, poor performance limits their general acceptance.I present two independent but complementary techniques to speed up object operations in Theta, a object-oriented, persistent programming language that is used within the object-oriented database Thor.I examine the overhead that such a system imposes on operations such as method calls and eld accesses, and show how these operations can be made fast without sacri cing the exibility and extensibility of Theta.First, I describe a novel object layout that allows method dispatch as fast or faster than C++ implementations, while keeping the fast eld accesses associated with nonobject-oriented systems.This layout derives from insights about the separation of subtyping and inheritance.Second, I show h o w customization can be applied to Theta to avoid many method dispatches.The statically-typed nature of Theta makes it possible to avoid dispatches more eectively than in a dynamic system such as Self.Dispatches can also be avoided in a novel use of customization that depends on the set of objects actively being used by an application, and which is applicable to persistent object systems.

Read the paper · More papers on PaperTik