Automatic design and implementation of language data types
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
Thin locks: featherweight synchronization for Java
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Space and time-efficient hashing of garbage-collected objects
Theory and Practice of Object Systems - Special issue on selected papers from ESEC/FSE'97 (Joint Meeting of the European Software Engineering Conference and ACM Foundations of Software Engineering)
Memory system behavior of Java programs: methodology and analysis
Proceedings of the 2000 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Measuring computer performance: a practitioner's guide
Measuring computer performance: a practitioner's guide
Proceedings of the 2001 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Exploiting prolific types for memory management and optimizations
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Space- and Time-Efficient Implementation of the Java Object Model
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Heap compression for memory-constrained Java environments
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Improving 64-Bit Java IPF Performance by Compressing Heap References
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Myths and realities: the performance impact of garbage collection
Proceedings of the joint international conference on Measurement and modeling of computer systems
IBM Systems Journal
Exploiting frequent field values in java objects for reducing heap memory requirements
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
Automatic pool allocation: improving performance by controlling data structure layout in the heap
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
64-bit versus 32-bit Virtual Machines for Java: Research Articles
Software—Practice & Experience
Space-Efficient 64-bit Java Objects through Selective Typed Virtual Addressing
Proceedings of the International Symposium on Code Generation and Optimization
Smaller footprint for java collections
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Hi-index | 0.00 |
Memory performance is an important design issue for contemporary computer systems given the huge processor/memory speed gap. This paper proposes a space-efficient Java object model for reducing the memory consumption of 64-bit Java virtual machines. We completely eliminate the object header through typed virtual addressing (TVA) or implicit typing. TVA encodes the object type in the object's virtual address by allocating all objects of a given type in a contiguous memory segment. This allows for removing the type information as well as the status field from the object header. Whenever type and status information is needed, masking is applied to the object's virtual address for obtaining an offset into type and status information structures. Unlike previous work on implicit typing, we apply TVA to a selected number of frequently allocated object types, hence, the name selective TVA (STVA); this limits the amount of memory fragmentation. In addition to applying STVA, we also compress the type information block (TIB) pointers for all objects that do not fall under TVA. We implement the space-efficient Java object model in the 64-bit version of the Jikes RVM on an AIX IBM platform and compare its performance against the traditionally used Java object model using a multitude of Java benchmarks. We conclude that the space-efficient Java object model reduces memory consumption by on average 15% (and up to 45% for some benchmarks). About one-half the reduction comes from TIB pointer compression; the other one-half comes from STVA. In terms of performance, the space-efficient object model generally does not affect performance; however, for some benchmarks we observe statistically significant performance speedups, up to 20%.