Affiliation:
1. Technion—Israel Institute of Technology
2. Dept. of Computer Science, University of Maryland, College Park
3. University of Waterloo
Abstract
Object layout schemes used in C++ and other languages rely on (sometimes numerous) compiler generated fields. We describe a language-independent object layout scheme, which is space optimal, that is, objects are contiguous, and contain
no compiler generated fields
other than a single type identifier. As in C++ and other multiple inheritance languages such as CECIL and DYLAN, the new scheme sometimes requires extra levels of indirection to access some of the fields. Using a data set of 28 hierarchies, totaling almost 50,000 types, we show that this scheme improves field access efficiency over standard implementations, and competes favorably with (the non-space-optimal) highly optimized C++ specific implementations. The benchmark includes an analytical model for computing the frequency of indirections in a sequence of field access operations. Our layout scheme relies on whole-program analysis, which requires about 10 microseconds per type on a contemporary architecture (Pentium III, 900Mhz, 256MB machine), even in very large hierarchies. We also present a layout scheme for separate compilation using the user-annotation of
virtual inheritance edge
that is used in C++.
Funder
Israel Science Foundation
Publisher
Association for Computing Machinery (ACM)
Reference24 articles.
1. Arnold K. and Gosling J. 1996. The Java Programming Language. The Java Series. Addison-Wesley Publishing Company Reading MA. Arnold K. and Gosling J. 1996. The Java Programming Language. The Java Series. Addison-Wesley Publishing Company Reading MA.
2. Cargill T. A. Cox B. Cook W. R. Loomis M. and Snyder A. 1993. Is multiple inheritance essential to OOP? Panel discussion at the ACM SIGPLAN International Conference on Object-Oriented Programming Systems Languages and Applications (OOPSLA'93). 10.1145/165854.165923 Cargill T. A. Cox B. Cook W. R. Loomis M. and Snyder A. 1993. Is multiple inheritance essential to OOP? Panel discussion at the ACM SIGPLAN International Conference on Object-Oriented Programming Systems Languages and Applications (OOPSLA'93). 10.1145/165854.165923
3. A fast method dispatcher for compiled languages with multiple inheritance
Cited by
2 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献