Real-time concurrent collection on stock multiprocessors
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Real-time replication garbage collection
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
List processing in real time on a serial computer
Communications of the ACM
Fast subtype checking in the HotSpot JVM
JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande
A real-time garbage collector with low overhead and consistent utilization
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Trading data space for reduced time and code space in real-time garbage collection on stock hardware
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Write barrier elision for concurrent garbage collectors
Proceedings of the 4th international symposium on Memory management
Garbage-first garbage collection
Proceedings of the 4th international symposium on Memory management
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
Optimizations in a private nursery-based garbage collector
Proceedings of the 2010 international symposium on Memory management
C4: the continuously concurrent compacting collector
Proceedings of the international symposium on Memory management
Hi-index | 0.00 |
In order for a garbage collector to concurrently move an object while an application mutator thread accesses it, either read or write barriers are necessary. A read barrier places certain invariants on loaded values that allow the garbage collector and mutator to progress in parallel. However, the read barrier is performed on loads and can be viewed as an impediment to the performance of the application threads. This paper builds on the work of a highly efficiency concurrent garbage collector known as the Continuously Concurrent Compacting Collector (C4) which progresses the design of read barriers to create what is known as the Loaded Value Barrier (LVB). This paper's key insight is the dynamic number of LVBs may be dramatically reduced by a compiler using the invariants the LVB provides. The paper describes three examples of this class of transformation, and reasons about their correctness and performance. We are unaware of work describing compiler optimizations to elide read barriers or restructure code to cut their dynamic execution. We detail related work on improving read barrier efficiency.