Optimal Heap Limits for Reducing Browser Memory Use
Garbage-collected language runtimes carefully tune heap limits to reduce garbage collection time and memory usage. However, there's a trade-off: a lower heap limit reduces memory use but increases garbage collection time. Classic methods for setting heap limits include manually tuned heap limits and multiple-of-live-size rules of thumb, but it is not clear when one rule is better than another or how to compare them.
We address this problem with a new framework where heap limits are set for multiple heaps at once. Our key insight is that every heap limit rule induces a particular allocation of memory across multiple processes, and this allocation can be sub-optimal. We use our framework to derive an optimal "square-root" heap limit rule, which minimizes total memory usage for any amount of total garbage collection time. Paradoxically, the square-root heap limit rule achieves this coordination without communication: it allocates memory optimally across multiple heaps without requiring any communication between those heaps.
Thu 8 DecDisplayed time zone: Auckland, Wellington change
10:30 - 12:00
RuntimeOOPSLA at AMRF Auditorium
Chair(s): Stefan Marr University of Kent
|A Fast In-Place Interpreter for WebAssembly|
Ben L. Titzer Carnegie Mellon UniversityDOI
|Optimal Heap Limits for Reducing Browser Memory Use|
Marisa Kirisame University of Utah, Pranav Shenoy University of Utah, Pavel Panchekha University of UtahDOI
|The Road Not Taken: Exploring Alias Analysis Based Optimizations Missed by the Compiler|
Khushboo Chitre IIIT Delhi, Piyus Kedia IIIT Delhi, Rahul Purandare IIIT DelhiDOI