Affiliation:
1. IBM Haifa Research Laboratory, Mount Carmel, Haifa, ISRAEL
2. Dept. of Computer Science, Technion - Israel Institute of Technology, Haifa, Israel
Abstract
We propose a heap compaction algorithm appropriate for modern computing environments. Our algorithm is targeted at SMP platforms. It demonstrates high scalability when running in parallel but is also extremely efficient when running single-threaded on a uniprocessor. Instead of using the standard forwarding pointer mechanism for updating pointers to moved objects, the algorithm saves information for a pack of objects. It then does a small computation to process this information and determine each object's new location. In addition, using a smart parallel moving strategy, the algorithm achieves (almost) perfect compaction in the lower addresses of the heap, whereas previous algorithms achieved parallelism by compacting within several predetermined segments.
Next, we investigate a method that trades compaction quality for a further reduction in time and space overhead. Finally, we propose a modern version of the two-finger compaction algorithm. This algorithm fails, thus, re-validating traditional wisdom asserting that retaining the order of live objects significantly improves the quality of the compaction.
The parallel compaction algorithm was implemented on the IBM production Java Virtual Machine. We provide measurements demonstrating high efficiency and scalability. Subsequently, this algorithm has been incorporated into the IBM production JVM.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference16 articles.
1. java.lang class system. http://java.sun.com/j2se/1.3/docs/api/java/lang/System.html. java.lang class system. http://java.sun.com/j2se/1.3/docs/api/java/lang/System.html.
2. A real-time garbage collector with low overhead and consistent utilization
3. An algorithm for parallel incremental compaction
4. Sam Borman. Sensible Sanitation - Understanding the IBM Java Garbage Collector (Part 1: Object allocation). http://www.ibm.com/developerworks/ibm/library/i-garbage1. Sam Borman. Sensible Sanitation - Understanding the IBM Java Garbage Collector (Part 1: Object allocation). http://www.ibm.com/developerworks/ibm/library/i-garbage1.
Cited by
14 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. The One Pass (OP) Compactor: An Intellectual Abstract;Proceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management;2024-06-20
2. Garbage Collection for Mostly Serialized Heaps;Proceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management;2024-06-20
3. Improving program locality in the GC using hotness;Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation;2020-06-06
4. Massively parallel GPU memory compaction;Proceedings of the 2019 ACM SIGPLAN International Symposium on Memory Management - ISMM 2019;2019
5. Skip compactors for garbage collection based on space utilization;Journal of the Chinese Institute of Engineers;2018-05-19