Assessing the limits of program-specific garbage collection performance
@article{Jacek2016AssessingTL, title={Assessing the limits of program-specific garbage collection performance}, author={Nicholas Jacek and Meng-Chieh Chiu and Benjamin M Marlin and Eliot Moss}, journal={Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation}, year={2016} }
We consider the ultimate limits of program-specific garbage collector performance for real programs. We first characterize the GC schedule optimization problem using Markov Decision Processes (MDPs). Based on this characterization, we develop a method of determining, for a given program run and heap size, an optimal schedule of collections for a non-generational collector. We further explore the limits of performance of a generational collector, where it is not feasible to search the space of…
8 Citations
Optimal Choice of When to Garbage Collect
- Computer ScienceACM Trans. Program. Lang. Syst.
- 2019
A linear-time dynamic programming solution that, given a program run and heap size, computes an optimal schedule of collections for a non-generational collector and extends the two-generation dynamic program to any number of generations, allowing other generalizations as well.
Learning when to garbage collect with random forests
- Computer ScienceISMM
- 2019
It is demonstrated useful generalization of learned policies to unseen traces of the same program, showing this approach may be fruitful for further investigation.
Transactional Sapphire
- Computer ScienceACM Trans. Program. Lang. Syst.
- 2018
This work describes the experience of implementing the Sapphire algorithm as the first on-the-fly, parallel, replication copying, garbage collector for the Jikes RVM Java virtual machine (JVM).
A Lightweight Formalism for Reference Lifetimes and Borrowing in Rust
- Computer ScienceACM Trans. Program. Lang. Syst.
- 2021
This article presents a lightweight formalism that captures many aspects of Rust, including copy- and move-semantics, mutable borrowing, reborrowing, partial moves, and lifetimes, and provides a soundness proof to verify the key claims of the calculus.
One Process to Reap Them All: Garbage Collection as-a-Service
- Computer ScienceVEE 2017
- 2017
The prototype collects system-wide statistics from all running VMs, makes centralized decisions about memory management across apps and across software layers, and also collects garbage centrally, and coordinates with the power manager to tune collector scheduling.
Effective memory management for mobile environments
- Computer Science
- 2016
This dissertation studies the design of managed runtime systems for mobile platforms, deepening the understanding of interactions between garbage collection (GC) and system layers, and develops tools to monitor the memory behavior of Android-based apps and to characterize GC performance.
Optimization and Training of Generational Garbage Collectors
- Engineering
- 2020
This research presents a novel and scalable approach called “SmartGarbageSmartCollection” that automates the very labor-intensive and therefore time-efficient and environmentally friendly process of collection and recycling ofGarbage.
References
SHOWING 1-10 OF 22 REFERENCES
Generating object lifetime traces with Merlin
- Computer ScienceTOPL
- 2006
It is shown that trace granularity often distorts simulated garbage collection results compared with perfect traces, and a new algorithm called Merlin is presented, which can generate traces over two orders of magnitude faster than the brute-force method which collects after every object allocation.
Space overhead bounds for dynamic memory management with partial compaction
- Computer SciencePOPL '11
- 2011
This paper studies the effectiveness of partial compaction and provides the first rigorous lower and upper bounds on its effectiveness in reducing fragmentation at a low cost.
The space cost of lazy reference counting
- Computer SciencePOPL
- 2004
If each reference count operation is constrained to take constant time, then the overall space requirements can be increased by a factor of Ω(R) in the worst case, where R is the ratio between the size of the largest and smallest allocated object.
The DaCapo benchmarks: java benchmarking development and analysis
- Computer ScienceOOPSLA '06
- 2006
This paper recommends benchmarking selection and evaluation methodologies, and introduces the DaCapo benchmarks, a set of open source, client-side Java benchmarks that improve over SPEC Java in a variety of ways, including more complex code, richer object behaviors, and more demanding memory system requirements.
Bounds for Some Functions Concerning Dynamic Storage Allocation
- MathematicsJACM
- 1974
The amount of store necessary to operate a dynamic storage allocation system, subject to certain constraints, with no risk of breakdown due to storage fragmentation, is considered. Upper and lower…
Elephant tracks: portable production of complete and precise gc traces
- Computer ScienceISMM '13
- 2013
Elephant Tracks (ET) is a dynamic program analysis tool for Java that produces detailed traces of garbage collection-related events, including object allocations, object deaths, and pointer updates, based on the Merlin algorithm.
Wake up and smell the coffee: evaluation methodology for the 21st century
- Computer ScienceCACM
- 2008
The consequences of the authors' collective inattention to methodology on innovation are explored, recommendations for addressing this problem in one domain are made, and guidelines for other domains are provided.
Elephant Tracks: generating program traces with object death records
- Computer SciencePPPJ
- 2011
We introduce Elephant Tracks (ET), a dynamic program analysis tool for producing traces of garbage collection events, including object allocations, object deaths, and pointer updates. Like prior…
An Estimate of the Store Size Necessary for Dynamic Storage Allocation
- Computer ScienceJACM
- 1971
It is proved that for any strategy the amount of store needed is bounded below by a function which rises logarithmically with the size of blocks used.
Dynamic Programming and Optimal Control
- Computer Science
- 1995
The leading and most up-to-date textbook on the far-ranging algorithmic methododogy of Dynamic Programming, which can be used for optimal control, Markovian decision problems, planning and sequential…