Smalltalk-80: bits of history, words of advice
Smalltalk-80: bits of history, words of advice
Concurrent garbage collection on stock hardware
Proc. of a conference on Functional programming languages and computer architecture
Real-time garbage collection on general-purpose machines
Journal of Systems and Software
Using key object opportunism to collect old objects
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Real-time replication garbage collection
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Garbage collection: algorithms for automatic dynamic memory management
Garbage collection: algorithms for automatic dynamic memory management
A compacting incremental collector and its performance in a production quality compiler
Proceedings of the 1st international symposium on Memory management
Barrier techniques for incremental tracing
Proceedings of the 1st international symposium on Memory management
Space and time-efficient hashing of garbage-collected objects
Theory and Practice of Object Systems - Special issue on selected papers from ESEC/FSE'97 (Joint Meeting of the European Software Engineering Conference and ACM Foundations of Software Engineering)
Measuring computer performance: a practitioner's guide
Measuring computer performance: a practitioner's guide
On-the-fly garbage collection: an exercise in cooperation
Communications of the ACM
Run-time support for distributed sharing in safe languages
ACM Transactions on Computer Systems (TOCS)
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
Dynamic memory management for real-time embedded Java chips
RTCSA '00 Proceedings of the Seventh International Conference on Real-Time Systems and Applications
Heap compression for memory-constrained Java environments
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Programming with non-heap memory in the real time specification for Java
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
The Compressor: concurrent, incremental, and parallel compaction
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
The DaCapo benchmarks: java benchmarking development and analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Realtime garbage collection in the JamaicaVM 3.0
JTRES '07 Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems
Proceedings of the 6th international symposium on Memory management
A real-time Java virtual machine with applications in avionics
ACM Transactions on Embedded Computing Systems (TECS)
ISORC '08 Proceedings of the 2008 11th IEEE Symposium on Object Oriented Real-Time Distributed Computing
A compacting real-time memory management system
ATC'08 USENIX 2008 Annual Technical Conference on Annual Technical Conference
Real-Time Java Programming: With Java RTS
Real-Time Java Programming: With Java RTS
Replicating real-time garbage collector for Java
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
Schism: fragmentation-tolerant real-time garbage collection
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Scheduling of hard real-time garbage collection
Real-Time Systems
Space overhead bounds for dynamic memory management with partial compaction
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Designing a concurrent hardware garbage collector for small embedded systems
ACSAC'05 Proceedings of the 10th Asia-Pacific conference on Advances in Computer Systems Architecture
DataMill: rigorous performance evaluation made easy
Proceedings of the 4th ACM/SPEC International Conference on Performance Engineering
Hi-index | 0.00 |
Compacting garbage collectors must update all references to objects they move. Updating is a lengthy operation but the updates must be transparent to the mutator. The consequence is that no space can be reclaimed until all references have been updated which, in a real-time collector, must be done incrementally. One solution is to replace direct references to objects with handles. Handles offer several advantages to a real-time collector. They eliminate the updating problem. They allow immediate reuse of the space used by evacuated objects. They incur no copy reserve overhead. However, the execution time overhead of handles has led to them being abandoned by most modern systems. We re-examine this decision in the context of real-time garbage collection, for which several systems with handles have appeared recently. We provide the first thorough study of the overheads of handles, based on an optimised implementation of different handle designs within Ovm's Minuteman real-time collector. We find that with a good set of optimisations handles are not very expensive. We obtained zero overhead over the widely used Brooks-style compacting collector (1.6% and 3.1% on two other platforms) and 9% increase in memory usage. Our optimisations are particularly applicable to mark-compact collectors, but may also be useful to other collectors.