A Comparative Evaluation of Parallel Garbage Collector Implementations
- 330 Downloads
While uniprocessor garbage collection is relatively well understood, experience with collectors for large multiprocessor servers is limited and it is unknown which techniques best scale with large memories and large numbers of processors. In order to explore these issues we designed a modular garbage collection framework in the IBM Jalapeño Java virtual machine and implemented five different parallel garbage collectors: non-generational and generational versions of mark-and-sweep and semi-space copying collectors, as well as a hybrid of the two. We describe the optimizations necessary to achieve good performance across all of the collectors, including load balancing, fast synchronization, and inter-processor sharing of free lists. We then quantitatively compare the different collectors to find their asymptotic performance both with respect to how fast they can run applications as well as how little memory they can run them in. All of our collectors scale linearly up to sixteen processors. The least memory is usually required by the hybrid mark-sweep collector that uses a copying collector for its nursery, although sometimes the non-generational mark-sweep collector requires less memory. The fastest execution is more application-dependent. Our only application with a large working set performed best using the mark-sweep collector; with one exception, the rest of the applications ran fastest with one of the generational collectors.
KeywordsVirtual Machine Garbage Collection Java Virtual Machine Garbage Collector Virtual Processor
Unable to display preview. Download preview PDF.
- Alpern, B., et al. Implementing Jalapeño in Java. In Proc. of the ACM Conf. on Object-Oriented Programming, Systems, Languages, and Applications (Oct. 1999). SIGPLAN Notices, 34, 10, 314–324.Google Scholar
- Arnold, M., Fink, S., Grove, D., M. Hind, AND Sweeney, P. Adaptive optimization in the Jalapeño JVM. In Proc. of the ACM Conf. on Object-Oriented Programming, Systems, Languages, and Applications (Oct. 2000). SIGPLAN Notices, 35, 10.Google Scholar
- Boehm, H.-J. Fast multiprocessor memory allocation and garbage collection. Tech. Rep. HPL-2000-165, Hewlett-Packard Laboratories, Dec. 2000.Google Scholar
- Endo, T., Taura, K., and Yonezawa, A. A scalable mark-sweep garbage collector on large-scale shared-memory machines. In Proc. of Supercomputing’ 97 (San Jose, California, Nov. 1997), IEEE Computer Society Press, Los Alamitos, California.Google Scholar
- Fitzgerald, R., and Tarditi, D. The case for profile-directed selection of garbage collectors. In ISMM , pp. 111–120.Google Scholar
- Flood, C. H., Detlefs, D., Shavit, N., and Zhang, X. Parallel garbage collection for shared memory multiprocessors. In Proceedings of the Usenix Java Virtual Machine Research and Technology Symposium (Monterey, California, Apr. 2001).Google Scholar
- Herlihy, M., and Moss, J. E. B. Lock-free garbage collection for multiprocessors. IEEE Transactions on Parallel and Distributed Systems 3,3 (May 1992).Google Scholar
- Proceedings of the ACM SIGPLAN International Symposium on Memory Management (Minneapolis, MN, Oct. 2000), SIGPLAN Notices 36, 1.Google Scholar
- Küchlin, W. A space-efficient parallel garbage collection algorithm. In Proceedings of Fifth ACM International Conference on Supercomputing (June 1991), pp. 40–46.Google Scholar
- Printezis, T., and Detlefs, D. A generational mostly-concurrent garbage collector. In ISMM , pp. 143–154.Google Scholar