Skip navigation
Skip navigation

An Examination of Deferred Reference Counting and Cycle Detection

Quinane, Luke

Description

Object-oriented programing languages are becoming increasingly important as are managed runtime-systems. An area of importance in such systems is dynamic automatic memory management. A key function of dynamic automatic memory management is detecting and reclaiming discarded memory regions; this is also referred to as garbage collection. A significant proportion of research has been conducted in the field of memory management, and more specifically garbage collection techniques. In the past,...[Show more]

dc.contributor.authorQuinane, Luke
dc.date.accessioned2004-07-29
dc.date.accessioned2004-09-28T04:51:35Z
dc.date.accessioned2011-01-05T08:55:10Z
dc.date.available2004-09-28T04:51:35Z
dc.date.available2011-01-05T08:55:10Z
dc.identifier.otherb37574346
dc.identifier.urihttp://hdl.handle.net/1885/42030
dc.description.abstractObject-oriented programing languages are becoming increasingly important as are managed runtime-systems. An area of importance in such systems is dynamic automatic memory management. A key function of dynamic automatic memory management is detecting and reclaiming discarded memory regions; this is also referred to as garbage collection. A significant proportion of research has been conducted in the field of memory management, and more specifically garbage collection techniques. In the past, adequate comparisons against a range of competing algorithms and implementations has often been overlooked. JMTk is a flexible memory management toolkit, written in Java, which attempts to provide a testbed for such comparisons. This thesis aims to examine the implementation of one algorithm currently available in JMTk: the deferred reference counter. Other research has shown that the reference counter in JMTk performs poorly both in throughput and responsiveness. Several aspects of the reference counter are tested, including the write barrier, allocation cost, increment and decrement processing and cycle-detection. The results of these examinations found the bump-pointer to be 8% faster than the free-list in raw allocation. The cost of the reference counting write barrier was determined to be 10% on the PPC architecture and 20% on the i686 architecture. Processing increments in the write barrier was found to be up to 13% faster than buffering them until collection time on a uni-processor platform. Cycle detection was identified as a key area of cost in reference counting. In order to improve the performance of the deferred reference counter and to contribute to the JMTk testbed, a new algorithm for detecting cyclic garbage was described. This algorithm is based on a mark scan approach to cycle detection. Using this algorithm, two new cycle detectors were implemented and compared to the original trial deletion cycle detector. The semi-concurrent cycle detector had the best throughput, outperforming trial deletion by more than 25% on the javac benchmark. The non-concurrent cycle detector had poor throughput attributed to poor triggering heuristics. Both new cycle detectors had poor pause times. Even so, the semi-concurrent cycle detector had the lowest pause times on the javac benchmark. The work presented in this thesis contributes to an evaluation of components of the reference counter and a comparsion between approaches to reference counting implementation. Previous to this work, the cost of the reference counter's components had not been quantified. Additionally, past work presented different approaches to reference counting implementation as a whole, instead of individual components.
dc.format.extent1059526 bytes
dc.format.extent2861489 bytes
dc.format.extent609 bytes
dc.format.extent355 bytes
dc.format.mimetypeapplication/pdf
dc.format.mimetypeapplication/postscript
dc.format.mimetypeapplication/octet-stream
dc.format.mimetypeapplication/octet-stream
dc.language.isoen_AU
dc.subjectcycle detection
dc.subjectgarbage collection
dc.subjectautomatic dynamic memory management
dc.subjectJMTk
dc.subjectMMTk
dc.subjectreference counting
dc.titleAn Examination of Deferred Reference Counting and Cycle Detection
dc.typeThesis (Honours)
local.description.refereedno
local.identifier.citationmonthnov
local.identifier.citationyear2003
local.identifier.eprintid2710
local.rights.ispublishedno
dc.date.issued2003
local.contributor.affiliationAustralian National University
local.contributor.affiliationDepartment of Computer Science
local.identifier.doi10.25911/5d7a289ca46e1
local.mintdoimint
CollectionsOpen Access Theses

Download

File Description SizeFormat Image
hon-thesis.pdf1.03 MBAdobe PDFThumbnail
hon-thesis.ps2.79 MBPostscript
2710-~!%.XSH609 BUnknown
2710-~UQ.XSH355 BUnknown


Items in Open Research are protected by copyright, with all rights reserved, unless otherwise indicated.

Updated:  17 November 2022/ Responsible Officer:  University Librarian/ Page Contact:  Library Systems & Web Coordinator