ABSTRACT
Many applications written in garbage collected languages have large dynamic working sets and poor data locality. We present a new system for continuously improving program data locality at run time with low overhead. Our system proactively reorganizes the heap by leveraging the garbage collector and uses profile information collected through a low-overhead mechanism to guide the reorganization at run time. The key contributions include making a case that garbage collection should be viewed as a proactive technique for improving data locality by triggering garbage collection for locality optimization independently of normal garbage collection for space, combining page and cache locality optimization in the same system, and demonstrating that sampling provides sufficiently detailed data access information to guide both page and cache locality optimization with low runtime overhead. We present experimental results obtained by modifying a commercial, state-of-the-art garbage collector to support our claims. Independently triggering garbage collection for locality optimization significantly improved optimizations benefits. Combining page and cache locality optimizations in the same system provided larger average execution time improvements (17%) than either alone (page 8%, cache 7%). Finally, using sampling limited profiling overhead to less than 3%, on average.
- Adl-Tabatabai, A., Hudson, R., Serrano, M., Subramoney, S. "Prefetch Injection Based on Hardware Monitoring and Object Matadata." In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '04), 2004, 267--276. Google Scholar
Digital Library
- Arnold, M. and Ryder, B. "A Framework for Reducing the Cost of Instrumented Code." In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '01), 2001, 168--179. Google Scholar
Digital Library
- Bacon, D.F., Cheng, Perry, Rajan V.T. "A Real-time Garbage Collector with Low Overhead and Consistent Utilization" In Principles of Programming Languages (POPL '03), 2003. Google Scholar
Digital Library
- Cheney, C. "A Non-recursive List Compacting Algorithm." Communications of the ACM, 13(11), November 1970, 677--678. Google Scholar
Digital Library
- Hirzel, M. and Chilimbi, T. "Bursty Tracing: A Framework for Low-Overhead Temporal Profiling." In 4th ACM Workshop on Feedback-Directed and Dynamic Optimization '01 (FDDO), 2001, 117--126.Google Scholar
- Chilimbi, T. and Larus, J. "Using Generational Garbage Collection to implement Cache-conscious Data placement." In Proceedings of the 1st International Symposium on Memory Management, October 1998, 37--48. Google Scholar
Digital Library
- Chilimbi, T., and Larus, J. "Cache-conscious Structure Definition." In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '99), 1999, 1--12. Google Scholar
Digital Library
- Courts, R. "Improving Locality of Reference in a Garbage-Collecting Memory Management System." Communications of the ACM, 31(9), September 1988, 1128--1138. Google Scholar
Digital Library
- Zorn, B. The Effect of Garbage Collection on Cache Performance, Technical Report CU-CS-528-91, Department of Computer Science, University of Colorado at Boulder, 1991.Google Scholar
Cross Ref
- Hennessy, J. and Patterson, D. Computer Architecture: A Quantitative Approach. Morgan Kaufman, San Mateo, CA. 3rd edition, 2002. Google Scholar
Digital Library
- Hertz, M., Feng, Y., and Berger, E. D. "Garbage Collection without Paging" In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '05), 2005. Google Scholar
Digital Library
- Inagaki, T., Onodera, T., Komastu, H., and Nakatani, T. "Stride Prefecthing by Dynamically Inspecting Objects." In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '03), 2003, 269--277. Google Scholar
Digital Library
- Lam, M., Wilson, P., and Moher, T. "Object Type Directed Garbage Collection to Improve Locality." In Proceedings of the International Workshop on Memory Management, 1992, 404--425. Google Scholar
Digital Library
- Hirzel, M., Diwan, A. and Hertz, M. "Connectivity-based Garbage Collection." In Proceedings of the 18th annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'03), 2003, 359--373. Google Scholar
Digital Library
- Richter, J. "Garbage Collection: Automatic Memory Management in the Microsoft .NET Framework (Part I and II)." MSDN Magazine, 2000, http://msdn.microsoft.com/msdnmag/issues/1100/GCI/ and http://msdn.microsoft.com/msdnmag/issues/1200/GCI2/.Google Scholar
- Moon, D. "Garbage Collection in a Large LISP System." In Proceedings of the 1984 ACM Symposium on LISP and Functional Programming, August 1984, 235--246. Google Scholar
Digital Library
- Nagpurkar, P., Krintz, C., and Sherwood, T. Phase-aware Remote Profiling, Technical report UCSB 2004-21, Department of Computer Science, University of California at Santa Barbara, 2004.Google Scholar
- White, J. "Address/Memory Management for a Gigantic LISP Environment or, GC Considered Harmful." In Proceedings of the 1980 ACM Conference on LISP and Functional Programming, 1980, 119--127. Google Scholar
Digital Library
- Wilson, P. "Uniprocessor Garbage Collection Techniques." In Proceedings of the International Workshop on Memory Management, 1992, 1--42. Google Scholar
Digital Library
- Wilson, P., Lam, M., and Moher, T. "Effective Static-graph Reorganization to Improve Locality in Garbage Collected Systems." In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '91), 1991, 177--191. Google Scholar
Digital Library
- Shuf, Y., Gupta, M., Franke, H., Appel, A., and Singh, J. "Creating and Preserving Locality of Java Applications at Allocation and Garbage Collection Times." In Proceedings of the 18th annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'02), 2002, 13--25. Google Scholar
Digital Library
- Huang, X., Blackburn, S., McKinley, K., Moss, J., Wang, Z., and Cheng, P. "The Garbage Collection Advantage: Improving Program Locality." In Proceedings of the 18th annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'04), 2004, 29--80. Google Scholar
Digital Library
- Shen, X., Zhong, Y., and Ding, C. "Locality Phase Prediction." In Proceedings of the 11th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '04), 2004, 165--176. Google Scholar
Digital Library
- Chilimbi, T. "Efficient Representations and Abstractions for Quantifying and Exploiting Data Reference Locality." In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '01), 2001, 191--202. Google Scholar
Digital Library
- Wilkes, R. "Ngen Revs up your performance with Powerful New Features", MSDN Magazine April 2005.Google Scholar
Index Terms
Profile-guided proactive garbage collection for locality optimization
Recommendations
The garbage collection advantage: improving program locality
OOPSLA '04As improvements in processor speed continue to outpace improvements in cache and memory speed, poor locality increasingly degrades performance. Because copying garbage collectors move objects, they have an opportunity to improve locality. However, no ...
Creating and preserving locality of java applications at allocation and garbage collection times
OOPSLA '02: Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsThe growing gap between processor and memory speeds is motivating the need for optimization strategies that improve data locality. A major challenge is to devise techniques suitable for pointer-intensive applications. This paper presents two techniques ...
Profile-guided proactive garbage collection for locality optimization
Proceedings of the 2006 PLDI ConferenceMany applications written in garbage collected languages have large dynamic working sets and poor data locality. We present a new system for continuously improving program data locality at run time with low overhead. Our system proactively reorganizes ...







Comments