Data layouts for object-oriented programs

  • Authors:
  • Martin Hirzel

  • Affiliations:
  • IBM Watson Research Center

  • Venue:
  • Proceedings of the 2007 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Object-oriented programs rely heavily on objects and pointers, making them vulnerable to slow downs from cache and TLB misses. The cache and TLB behavior depends on the data layout of objects in memory. There are many possible data layouts with different impacts on performance, but it is not known which perform better. This paper presents a novel framework for evaluating data layouts. The framework both makes implementing many layouts easy, andenables performance measurements of real programs using a product Java virtual machine on stock hardware. This is achieved by sorting objects during copying garbage collection; outside of garbage collection, program performance is solely determined by the data layout that the sort key implements. This paper surveys and evaluates 10 common data layouts with 32 realistic bench mark programs running on 3 different hardware configurations. The results confirm the importance of data layouts for program performance, and show that almost all layouts yield the best performance for some programs and the worst performance for others.