CAREER: Cooperative Virtual Machines: Mechanisms and Policies for Application-Aware Runtime Services
Tufts University, Medford MA
Investigators
Abstract
Modern managed programming languages, from Java and C# to Javascript and Ruby, provide a compelling set of software engineering advantages over traditional languages like C and C++. Unfortunately, the continue to suffer from a range of well-documented performance problems. Their inefficient use of memory, in particular, imposes a significant penalty, with debilitating consequences for the quality and capacity of critical server software built in these languages. In spite of intensive research and development, these problems have remained stubbornly unsolved. As a result programmers face a difficult dilemma: choose a safe and secure managed language, but take a major performance hit, or continue taking their chances with C and C++. This project explores a new approach, called cooperative virtual machines, which attacks the problem by improving communication and cooperation between the programmer and the managed language runtime system (the virtual machine). The key idea is that with extra information, virtual machines can provide much more efficient services because they are customized to each application's needs. The project involves building new tools for exploring and quantifying memory performance, designing a configurable garbage collector for large server applications, and developing techniques to give programmers more control over the low-level representation and management of data structures. Significant improvements in memory utilization and performance will allow existing computing infrastructure (hardware and software) to deliver higher quality services to more users. A crucial component of this project is improved pedagogical tools and techniques to help new programmers reason about the performance of these complex systems.
View original record on NSF Award Search →