On-the-fly garbage collection: issues and Opportunities

The MirrorGC project is building on-the-fly, concurrent, copying garbage collectors. This work has exposed a number of issues and opportunities. In this talk, I provide a background to concurrent garbage collection, explaining the key issue of synchronisation, either between parallel collector threads or between collector and mutator threads. I then focus on two issues: how to handle Java’s weak references in an on-the-fly collector and whether garbage collection can benefit from transactional memory.

Java’s weak reference types require the garbage collector to process them atomically. However, the implementor is not helped by the informal specification given only in the package documentation. We formalise the specification, investigate alternative implementations (which we model check), and demonstrate that an on-the-fly solution is competitive with other approaches.

Intel’s latest processor microarchitecture, Haswell, provides a restricted form of transactional memory. We explore how this can be applied to three garbage collection scenarios in Jikes RVM. We demonstrate gains in concurrent copying speed over traditional synchronisation mechanisms of 48-101%. We also show how similar but portable performance gains can be achieved through software transactional memory techniques.

Date:
Speakers:
Richard Jones
Affiliation:
University of Kent
    • Portrait of Jeff Running

      Jeff Running