Affiliation:
1. University of Texas at Austin, Austin, TX, USA
Abstract
Type safety and garbage collection in managed languages eliminate memory errors such as dangling pointers, double frees, and leaks of unreachable objects. Unfortunately, a program still leaks memory if it maintains references to objects it will never use again. Leaked objects decrease program locality and increase garbage collection frequency and workload. A growing leak will eventually exhaust memory and crash the program.
This paper introduces a
leak tolerance
approach called
Melt
that safely eliminates performance degradations and crashes due to leaks of dead but reachable objects in managed languages, given sufficient disk space to hold leaking objects. Melt (1) identifies
stale
objects that the program is not accessing; (2) segregates in-use and stale objects by storing stale objects to disk; and (3) preserves safety by activating stale objects if the program subsequently accesses them. We design and build a prototype implementation of Melt in a Java VM and show it adds overhead low enough for production systems. Whereas existing VMs grind to a halt and then crash on programs with leaks, Melt keeps many of these programs running much longer without significantly degrading performance. Melt provides users the illusion of a fixed leak and gives developers more time to fix leaky programs.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
20 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A Managed Memory System for Micro Controllers with NOR Flash Memory;Proceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management;2024-06-20
2. Asking and Answering Questions During Memory Profiling;IEEE Transactions on Software Engineering;2024-05
3. Software Visualizations to Analyze Memory Consumption: A Literature Review;ACM Computing Surveys;2022-01-17
4. Improving program locality in the GC using hotness;Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation;2020-06-06
5. ThinGC: complete isolation with marginal overhead;Proceedings of the 2020 ACM SIGPLAN International Symposium on Memory Management;2020-06