Embedding a modern language runtime as a component in a larger software system is popular these days. Communication between these systems often requires keeping references to each others’ objects. In this paper we present and discuss the problem of cross-component memory management where reference cycles across component boundaries may lead to memory leaks and premature reclamation of objects may lead to dangling cross-component references. We provide a generic algorithm for effective, efficient, and safe garbage collection over component boundaries, which we call cross-component tracing. We designed and implemented cross-component tracing in the Chrome web browser where the JavaScript virtual machine V8 is embedded into the rendering engine Blink. Cross-component tracing from V8’s JavaScript heap to Blink’s C++ heap improves garbage collection latency and eliminates long-standing memory leaks for real websites in Chrome. Our system was enabled by default for all websites in Chrome version 57.
Thu 8 Nov Times are displayed in time zone: Guadalajara, Mexico City, Monterrey change
15:30 - 15:52 Talk | Cross-Component Garbage Collection OOPSLA Ulan DegenbaevGoogle, Jochen EisingerGoogle, Kentaro HaraGoogle, Marcel HlopkoGoogle, Michael LippautzGoogle, Hannes PayerGoogle DOI Media Attached | ||
15:52 - 16:15 Talk | Reactive Caching for Composed Services OOPSLA | ||
16:15 - 16:37 Talk | Object-Oriented Recovery for Non-Volatile Memory OOPSLA | ||
16:37 - 17:00 Talk | Software Multiplexing: Share Your Libraries and Statically Link Them Too OOPSLA Will DietzUniversity of Illinois at Urbana-Champaign, Vikram S. AdveUniversity of Illinois at Urbana-Champaign Link to publication DOI Pre-print |