Affiliation:
1. IBM Haifa Research Lab.
2. Computer Science Dept., Technion - Israel Institute of Technology
Abstract
An
on-the-fly garbage collector
does not stop the program threads to perform the collection. Instead, the collector executes in a separate thread (or process) in parallel to the program. On-the-fly collectors are useful for multi-threaded applications running on multiprocessor servers, where it is important to fully utilize all processors and provide even response time, especially for systems for which
stopping the threads is a costly operation.
In this work, we report on the incorporation of generations into
an on-the-fly garbage collector. The incorporation is non-trivial since an on-the-fly collector avoids explicit synchronization with the program threads. To the best of our knowledge, such an incorporation has not been tried before. We have implemented the collector for a prototype Java Virtual Machine on AIX, and measured its performance on a 4-way multiprocessor.
As for other generational collectors, an on-the-fly generational
collector has the potential for reducing the overall running time and working set of an application by concentrating collection efforts on the young objects. However, in contrast to other generational collectors,
on-the-fly collectors do not move the objects; thus, there is no segregation between the old and the young objects. Furthermore, on-the-fly collectors do not stop the threads, so there is no extra benefit for the short pauses obtained by generational collection. Nevertheless, comparing our on-the-fly collector with and without generations, it turns out that the generational collector performs better for most applications. The best reduction in overall running time for the benchmarks we measured was 25%. However, there were some benchmarks for which it had no effect and one for which the overall running time increased by 4%.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference25 articles.
1. List processing in real time on a serial computer
2. The treadmill
3. Algorithms for on-the-fly garbage collection
4. Jeff Chan and Nik Shaylor. Multithreaded Ray Tracer. Sun Microsystems private communications. Jeff Chan and Nik Shaylor. Multithreaded Ray Tracer. Sun Microsystems private communications.
Cited by
19 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Alligator collector: a latency-optimized garbage collector for functional programming languages;Proceedings of the 2020 ACM SIGPLAN International Symposium on Memory Management;2020-06
2. Transactional Sapphire;ACM Transactions on Programming Languages and Systems;2018-12-31
3. Code and Data Transformations to Address Garbage Collector Performance in Big Data Processing;2018 IEEE 25th International Conference on High Performance Computing (HiPC);2018-12
4. Block-free concurrent GC: stack scanning and copying;ACM SIGPLAN Notices;2018-07-19
5. Making Huge Pages Actually Useful;Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems;2018-03-19