Show simple item record

dc.contributor.advisorKulkarni, Prasad A
dc.contributor.authorJantz, Michael
dc.date.accessioned2017-05-07T20:42:13Z
dc.date.available2017-05-07T20:42:13Z
dc.date.issued2014-08-31
dc.date.submitted2014
dc.identifier.otherhttp://dissertations.umi.com/ku:13613
dc.identifier.urihttp://hdl.handle.net/1808/23963
dc.description.abstractRecent years have witnessed the widespread adoption of managed programming languages that are designed to execute on virtual machines. Virtual machine architectures provide several powerful software engineering advantages over statically compiled binaries, such as portable program representations, additional safety guarantees, automatic memory and thread management, and dynamic program composition, which have largely driven their success. To support and facilitate the use of these features, virtual machines implement a number of services that adaptively manage and optimize application behavior during execution. Such runtime services often require tradeoffs between efficiency and effectiveness, and different policies can have major implications on the system's performance and energy requirements. In this work, we extensively explore policies for the two runtime services that are most important for achieving performance and energy efficiency: dynamic (or Just-In-Time (JIT)) compilation and memory management. First, we examine the properties of single-tier and multi-tier JIT compilation policies in order to find strategies that realize the best program performance for existing and future machines. Our analysis performs hundreds of experiments with different compiler aggressiveness and optimization levels to evaluate the performance impact of varying if and when methods are compiled. We later investigate the issue of how to optimize program regions to maximize performance in JIT compilation environments. For this study, we conduct a thorough analysis of the behavior of optimization phases in our dynamic compiler, and construct a custom experimental framework to determine the performance limits of phase selection during dynamic compilation. Next, we explore innovative memory management strategies to improve energy efficiency in the memory subsystem. We propose and develop a novel cross-layer approach to memory management that integrates information and analysis in the VM with fine-grained management of memory resources in the operating system. Using custom as well as standard benchmark workloads, we perform detailed evaluation that demonstrates the energy-saving potential of our approach. We implement and evaluate all of our studies using the industry-standard Oracle HotSpot Java Virtual Machine to ensure that our conclusions are supported by widely-used, state-of-the-art runtime technology.
dc.format.extent162 pages
dc.language.isoen
dc.publisherUniversity of Kansas
dc.rightsCopyright held by the author.
dc.subjectComputer science
dc.subjectcompiler
dc.subjectdynamic compilation
dc.subjectmemory management
dc.subjectoptimization
dc.subjectpower
dc.subjectvirtual machine
dc.titleExploring Dynamic Compilation and Cross-Layer Object Management Policies for Managed Language Applications
dc.typeDissertation
dc.contributor.cmtememberGill, Andrew
dc.contributor.cmtememberFu, Xin
dc.contributor.cmtememberLuo, Bo
dc.contributor.cmtememberNordheden, Karen
dc.thesis.degreeDisciplineElectrical Engineering & Computer Science
dc.thesis.degreeLevelPh.D.
dc.rights.accessrightsopenAccess


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record