Thread-based, region-based automatic memory management

Thumbnail Image



Journal Title

Journal ISSN

Volume Title


University of New Brunswick


Automatic memory management offers programmers an alternative to unmanaged languages. It unburdens some of the low-level control from human hands. However, this comes at the price of performance. Virtual machines using automatic memory management are prone to long system pause times that degrade the overall performance of the system. Often, the culprit is a mismatch between the nature of the application and the chosen garbage collection algorithm. There are algorithms that already address this issue, such as the Balanced Garbage Collection (BGC) by IBM, which uses region based memory management. Region-based memory management introduces the flexibility of being able to select areas of the heap for collection that will potentially result in the best "return-on-investment." With the advent of multicore processors, we extend this approach to take advantage of the potential concurrency that can happen among threads during garbage collection. By assigning entire regions to a thread, we are able to select a set of regions that belong to only one thread thereby potentially allowing other threads to continue execution during garbage collection. We also define thread relationships that will identify other threads that may have to be stopped as well when collection is being done on a given thread.