Improving virtual machines using string deduplication and internal object pools

dc.contributor.advisorKent, Kenneth
dc.contributor.authorNasartschuk, Konstantin
dc.date.accessioned2023-03-01T16:17:04Z
dc.date.available2023-03-01T16:17:04Z
dc.date.issued2019
dc.date.updated2023-03-01T15:01:12Z
dc.description.abstractThe efficiency of memory management is one of the key metrics when researching virtual machines. In cases where deallocation of objects is performed automatically, garbage collection has become an important field of research. It aims at speeding up and optimizing the execution of applications written in languages such as Java, C#, Python and others. Even though garbage collection techniques have become more sophisticated, automatic memory management is still far from being optimal. Garbage collection techniques such as mark sweep, mark compact, copying collection, and generational garbage collection form the base of most virtual environments. These algorithms rely on a stop-the-world phase that is used to detect and free live objects. The research presented in this dissertation aims at improving automatic memory management by investigating the optimization of memory layout as well as optimizing the allocation and deallocation processes of frequently created and freed objects. The first optimization aims at using the stop-the-world phase of the garbage collector in order to detect duplicate strings and deduplicate them before copying them to a new region. The goal of this algorithm is to reduce multiple storage of the same data in memory, as well as copying of memory, in order to decrease the heap size and therefore the number of garbage collections required to execute the client application. The second optimization aims at speeding up the allocation of frequently created and discarded objects by keeping a pool of empty objects. Instead of requesting new memory, the virtual machine requests an empty object of the class and initializes the values required. Object pools are a widely used software engineering pattern utilized by software developers to reuse object instances without the need of repeated allocation and instantiation. While the benefits of using object pool structures are still present when used in a garbage collected environment, it adds a memory management component to the development process. The dissertation investigates the feasibility of introducing automatically created and maintained object pools for predefined classes. Automatic object pools are implemented and discussed using the GenCon GC and Balanced GC policies of the IBM Java VM.
dc.description.copyright© Konstantin Nasartschuk, 2019
dc.formattext/xml
dc.format.extentxii, 121 pages
dc.format.mediumelectronic
dc.identifier.urihttps://unbscholar.lib.unb.ca/handle/1882/13301
dc.language.isoen_CA
dc.publisherUniversity of New Brunswick
dc.rightshttp://purl.org/coar/access_right/c_abf2
dc.subject.disciplineComputer Science
dc.titleImproving virtual machines using string deduplication and internal object pools
dc.typedoctoral thesis
thesis.degree.disciplineComputer Science
thesis.degree.fullnameDoctor of Philosophy
thesis.degree.grantorUniversity of New Brunswick
thesis.degree.leveldoctoral
thesis.degree.namePh.D.

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
item.pdf
Size:
812.32 KB
Format:
Adobe Portable Document Format