Object oriented programming: an evolutionary approach
Object oriented programming: an evolutionary approach
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Efficient handling of multiple inheritance hierarchies
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Is multiple inheritance essential to OOP? (panel)
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Building and maintaining analysis-level class hierarchies using Galois Lattices
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
The design and evolution of C++
The design and evolution of C++
Minimizing row displacement dispatch tables
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
The direct cost of virtual function calls in C++
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Fast static analysis of C++ virtual function calls
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Efficient type inclusion tests
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Space and time-efficient memory layout for multiple inheritance
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Object-Oriented Software Construction
Object-Oriented Software Construction
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Interface translation and implementation filtering
CTEC'94 Proceedings of the 6th conference on USENIX Sixth C++ Technical Conference - Volume 6
Sealing, Encapsulation, and Mutability
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Are We Ready for a Safer Construction Environment?
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Implementing statically typed object-oriented programming languages
ACM Computing Surveys (CSUR)
Smaller footprint for java collections
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Hi-index | 0.00 |
Although there is a large body of research on the time overhead of object oriented programs, there is little work on memory overhead. This paper takes an empirical approach to the study of this overhead, which turns out to be significant in the presence of multiple inheritance. We study the performance, in terms of overhead to object size of three compilation strategies: separate compilation, whole program analysis, and user annotations as done in C++. A variant to each such strategy is the inclusion of pointers to indirect virtual bases in objects. Using a database of several large multiple inheritance hierarchies, spanning 7000 classes, several application domains and different programming languages we find that in all strategies there are certain classes which give rise a large number of compiler generated fields in their object layout. We then study the efficacy of the recently introduced inlining and bidirectional object layout optimization techniques, and show that an average saving of close to 50% in this overhead can be achieved.