Abstract

Many high-level language compilers generate C code and then invoke a C compiler for code generation. To date, most, of these compilers link the resulting code against a conservative mark-sweep garbage collector in order to reclaim unused memory. We introduce a new collector, MCC, based on an extension of mostly-copying collection .We analyze the various design decisions made in MCC and provide a performance comparison to the most widely used conservative mark-sweep collector (the Boehm-Demers-Weiser collector). Our results show that a good mostly-copying collector can outperform a mature highly-optimized mark-sweep collector when physical memory is large relative to the live data. A surprising result of our analysis is that cache behavior can have a greater impact on overall performance than either collector time or allocation time.

Highlights

  • Java, ML, and many other languages require garbage collection which C does not directly provide

  • Our results show that a good mostlycopying collector can outperform a mature highly-optimized mark-sweep collector when physical memory is large relative to the live data

  • A surprising result of our analysis is that cache behavior can have a greater impact on overall performance than either collector time or allocation time

Read more

Summary

Introduction

Java, ML, and many other languages require garbage collection which C does not directly provide. Because of the di culties of combining C with accurate garbage collection, all of the systems mentioned above except SML2C are designed to work with a conservative garbage collector, and use the Boehm-Demers-Weiser, mark-sweep. Mostlycopying collection requires that most objects be typed annotated to distinguish pointers from other values in order to be e ective. Under this assumption, mostly-copying collection can share the same characteristics as accurate copying collection: fast allocation and compaction. MCC, extends Bartlett's original algorithm by allowing typed and untyped objects to coexist in the heap, and by making only one traversal of the live data. A new one-pass mostly-copying collector, MCC, that allows typed and untyped objects to co-exist in the heap and to be collected. The reader requiring more clari cation is referred to Paul Wilson's survey on garbage collection techniques 31 or Richard Jones' text 16

Methods
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call