Abstract
Mark-compact garbage collection helps long-running programs avoid fragmentation. The Lisp2 mark-compact collector is a classic but still widely-used compaction algorithm. It sequentially scans the entire heap to compact all live objects at one end of the heap while preserving their order of addresses. Since the heap is generally large, this scanning takes a long time. Although some collectors adopt a separate bitmap into which mark bits of objects are stored to reduce the scanning time, we observed that scanning the bitmap can take longer than scanning the heap if objects are densely located. We propose a new scanning method from this observation, which adaptively alternates methods of scanning depending on heap usage; it scans those parts of the heap where live objects are densely located whereas it scans the bitmap for the remaining parts. We implemented this scanning method in the Lisp2 collector of Jikes RVM.
The experimental results revealed that the adaptive scanner scanned faster than the method that only scanned the heap and the method that only scanned the bitmap.
- D. Abuaiadh, Y. Ossia, E. Petrank, and U. Silbershtein.An efficient parallel heap compaction algorithm. Proceedings of the 19th Annual ACM SIGPLAN Conferenceon Object-Oriented Programming Systems, Languages, and Applications Languages, and Applications(OOPSLA 2004), 224--236, 2004. Google Scholar
Digital Library
- B. Alpern et al.The Jikes Research Virtual Machine project: Building an opensource research community. IBM Systems Journal,44(2):399--417, 2005. Google Scholar
Digital Library
- S. M. Blackburn, P. Cheng, and K. S. McKinley. Myths and realities: The performance impact of garbage collection. Proceedings of the ACM International Conference onMeasurements and Modeling Computer Systems (SIGMETRICS 2004),25--36, 2004. Google Scholar
Digital Library
- S. M. Blackburn et al. The DaCapo benchmarks: Java benchmarking development and analysis. Proceedings of the 21st Annual ACM SIGPLAN Conferenceon Object-Oriented Programming Systems, Languages, and Applications(OOPSLA 2006), 169--190, 2006. Google Scholar
Digital Library
- H. J. Boehm and M. Weiser.Garbage collection in an uncooperative environment. Software Practice & Experience, 18(9):807--820, 1988. Google Scholar
Digital Library
- Y. C. Chung, S.-M. Moon, K. Ebcioğlu, and D. Sahlin. Reducing sweep time for a nearly empty heap. Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2000), 378--389, 2000. Google Scholar
Digital Library
- B. Hayes. Using key object opportunism to collect old objects. Proceedings of the 6th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 1991), 33--46, 1991. Google Scholar
Digital Library
- R. Jones, A. Hosking, and E. Moss. The Garbage Collection Handbook. Chapman and Hall/CRC Press, 2012. Google Scholar
Digital Library
- R. Jones and R. Lins. Garbage Collection Algorithms for Automatic Dynamic Memory Management.John Wiley and Sons, New York, 1996. Google Scholar
Digital Library
- H. Kermany and E. Petrank. The Compressor: concurrent, incremental, and parallel compaction. Proceedings of the ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation (PLDI 2006), 354--363, 2006. Google Scholar
Digital Library
- X.-F. Li, L. Wang, and C. Yang. A fully parallel LISP2 compactor with preservation of the sliding properties. Proceedings of Languages and Compilers for Parallel Computing (LCPC 2008),LNCS 5335, 264--278, 2008. Google Scholar
Digital Library
- P. McGachey and A. L. Hosking.Reducing generational copy reserve overhead with fallback compaction. Proceedings of the 5th International Symposium on Memory Management (ISMM 2006), 17--28, 2006. Google Scholar
Digital Library
- Sun Microsystems. Memory management in the Java HotSpot(™) virtual machine.http://www.oracle.com/technetwork/java/javase/ memorymanagement-whitepaper-50215.pdf, 2006.Google Scholar
- G. D. Ripley, R. E. Griswold, and D. R. Hanson. Performance of storage management in an implementation of SNOBOL4. IEEE Transactions on Software Engineering, 4(2):130--137, 1978. Google Scholar
Digital Library
- P. G. Sobalvarro. A lifetime-based garbage collector for lisp systems on general-purpose computers. Technical report, MIT, 1988. Google Scholar
Digital Library
- L. Tong and F. C. M. Lau. Index-compact garbage collection. Proceedings of the 8th Asian conference on Programming Languages and Systems (APLAS 2010),LNCS 6461, 271--286, 2010. Google Scholar
Digital Library
- K. Ueno, A. Ohori, and T. Otomo. An efficient non-moving garbage collector for functional languages. Proceedings of the ACM SIGPLAN Conference on Functional programming (ICFP 2011), 196--208, 2011. Google Scholar
Digital Library
- D. Ungar. Generation scavenging: A non-disruptive high performance storagereclamation algorithm. Proceedings of the first ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments(SDE 1984), 157--167, 1984. Google Scholar
Digital Library
Index Terms
Adaptive scanning reduces sweep time for the Lisp2 mark-compact garbage collector
Recommendations
Adaptive scanning reduces sweep time for the Lisp2 mark-compact garbage collector
ISMM '13: Proceedings of the 2013 international symposium on memory managementMark-compact garbage collection helps long-running programs avoid fragmentation. The Lisp2 mark-compact collector is a classic but still widely-used compaction algorithm. It sequentially scans the entire heap to compact all live objects at one end of ...
Adaptive scanning reduces sweep time for the Lisp2 mark-compact garbage collector
ISMM '13: Proceedings of the 2013 international symposium on memory managementMark-compact garbage collection helps long-running programs avoid fragmentation. The Lisp2 mark-compact collector is a classic but still widely-used compaction algorithm. It sequentially scans the entire heap to compact all live objects at one end of ...
An on-the-fly mark and sweep garbage collector based on sliding views
Special Issue: Proceedings of the OOPSLA '03 conferenceWith concurrent and garbage collected languages like Java and C# becoming popular, the need for a suitable non-intrusive, efficient, and concurrent multiprocessor garbage collector has become acute. We propose a novel mark and sweep on-the-fly algorithm ...







Comments