Two-dimensional bidirectional object layout
Autor: | Yoav Zibin, William Pugh, Grant E. Weddell, Joseph Gil |
---|---|
Rok vydání: | 2008 |
Předmět: | |
Zdroj: | ACM Transactions on Programming Languages and Systems. 30:1-38 |
ISSN: | 1558-4593 0164-0925 |
DOI: | 10.1145/1387673.1387677 |
Popis: | 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++. |
Databáze: | OpenAIRE |
Externí odkaz: |