Affiliation:
1. Computer Sciences Department, University of Wisconsin-Madison, 1210 West Dayton St. Madison, Wisconsin
2. Microsoft Research, One Microsoft Way, Redmond, WA and Computer Sciences Department, University of Wisconsin-Madison, 1210 West Dayton St. Madison, Wisconsin
Abstract
The cost of accessing main memory is increasing. Machine designers have tried to mitigate the consequences of the processor and memory technology trends underlying this increasing gap with a variety of techniques to reduce or tolerate memory latency. These techniques, unfortunately, are only occasionally successful for pointer-manipulating programs. Recent research has demonstrated the value of a complementary approach, in which pointer-based data structures are reorganized to improve cache locality.This paper studies a technique for using a generational garbage collector to reorganize data structures to produce a cache-conscious data layout, in which objects with high temporal affinity are placed next to each other, so that they are likely to reside in the same cache block. The paper explains how to collect, with low overhead, real-time profiling information about data access patterns in object-oriented languages, and describes a new copying algorithm that utilizes this information to produce a cache-conscious object layout.Preliminary results show that this technique reduces cache miss rates by 21--42%, and improves program performance by 14--37% over Cheney's algorithm. We also compare our layouts against those produced by the Wilson-Lam-Moher algorithm, which attempts to improve program locality at the page level. Our cache-conscious object layouts reduces cache miss rates by 20--41% and improves program performance by 18--31% over their algorithm, indicating that improving locality at the page level is not necessarily beneficial at the cache level.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
18 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Mutator-Driven Object Placement using Load Barriers;Proceedings of the 21st ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes;2024-09-13
2. A Managed Memory System for Micro Controllers with NOR Flash Memory;Proceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management;2024-06-20
3. OJXPerf;Proceedings of the 44th International Conference on Software Engineering;2022-05-21
4. Performance Characterization of .NET Benchmarks;2021 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS);2021-03
5. Improving program locality in the GC using hotness;Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation;2020-06-06