Reducing Garbage Collection Costs Using Application-Specific Information
Nunez, Diogenes.
2020
-
Thesis
(Ph.D.)--Tufts University, 2020.
Submitted to the Dept. of Computer Science.
Advisor: Samuel Guyer.
Committee: Kathleen Fisher, Alva Couch, Mark Hempstead, and Emery Berger.
Keyword: Computer science.
Applications running on multiple environments are all supported by garbage collectors. Modern garbage collectors rely on two assumptions to ... read moreperform well: the collector will reclaim enough memory to avoid frequent failed allocations and most memory allocated for the application soon becomes garbage. These assumptions are broken by modern applications. For instance, applications that rely on an application-level key-value store, or software cache, reduce run time by increasing memory use. However, that breaks the first assumption. When they are broken, garbage collector performance degrades. To reduce this performance loss, garbage collectors should be supplied application-specific information. In this thesis, we support this hypothesis with three projects. First, we hypothesized Haskell programs violate the first assumption. The violation is thanks to the implementation of lazy evaluation which evaluates expressions only as needed. This can be circumvented with annotations, but the annotations can prove difficult to place correctly. We present Autobahn as a solution. Autobahn is a tool that uses a genetic algorithm to add strictness annotations to Haskell programs and improve their runtime. Next, we hypothesized software caches violate both assumptions. The violation comes from conflicting goals. The goal of the cache is to maximize the amount of space used to improve runtime. The goal of the garbage collector is to minimize the amount of space used to allow future allocations to succeed and keep time spent collection low. We present prioritized garbage collection as a solution. The prioritized garbage collector lets a programmer supply the garbage collector with data about objects to relieve memory-pressure and improve the robustness of software caching applications. Finally, we hypothesized applications with long-lived data structures violate the second assumption. These data structures are visited every collection, resulting in repeated work and lost time. We present a design for a deferred garbage collector. The deferred garbage collector lets a programmer supply information about long-lived data structures to reduce garbage collection time.read less - ID:
- x346dj46c
- To Cite:
- TARC Citation Guide EndNote
- Usage:
- Detailed Rights