Frampton, Daniel John
Description
Modern object oriented languages such as Java and C# have been gaining widespread industry support in recent times. Such languages rely on a runtime infrastructure that provides automatic dynamic memory management services. The performance of such services is a crucial component of overall system performance. This thesis discusses work undertaken in relation to automatic memory management using the Java Memory Management Toolkit (JMTk) running on the Jikes Research Virtual Machine (Jikes RVM)....[Show more] The primary goal of this work was to develop an automatic memory management strategy employing a compacting collector to run on this platform. Compacting collectors are an important class of collectors used in several production runtimes, including Microsoft's Common Language Runtime and IBM's Java Runtime Environment. The development of a strategy using compaction makes an important contribution to JMTk, and provides a platform where side-by-side comparisons between compacting collectors and other important classes of collector can be made. A compacting collector differs from the collectors that currently exist in JMTk in several important ways. Prior to this work, JMTk and Jikes RVM did not have an implementation of a compacting collector, nor the structure to fully support one. This work has achieved its primary goal in providing an implementation of a compacting collector. It describes how both JMTk and Jikes RVM were modified to support such collectors. Although substantial, this project should be considered but a first step into the investigation of this class of collectors. It is anticipated that through broadening the set of operations supported by JMTk and Jikes RVM that this work will also allow new classes of collectors to be implemented and compared. The cost of performing a compacting collection was shown to be very significant given the current implementation. The use of compaction in a generational collector demonstrated increased performance, bringing it in-line with other generational collectors in JMTk. This work shows that there are benefits in reducing memory fragmentation through the use of compacting collectors. When discounting the cost of the collection, the implemented compacting collectors come close to matching or outperforming other collection strategies. The difficulty now lies in attempting to reduce the cost of compacting collection.
Items in Open Research are protected by copyright, with all rights reserved, unless otherwise indicated.