Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
On-the-fly garbage collection: issues and Opportunities

Speaker  Richard Jones

Affiliation  University of Kent

Host  Matthew Parkinson

Duration  01:03:34

Date recorded  25 April 2014

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.

©2014 Microsoft Corporation. All rights reserved.
> On-the-fly garbage collection: issues and Opportunities