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 NovDisplayed time zone: Guadalajara, Mexico City, Monterrey change
15:30 - 17:00 | |||
15:30 22mTalk | Cross-Component Garbage Collection OOPSLA Ulan Degenbaev Google, Jochen Eisinger Google, Kentaro Hara Google, Marcel Hlopko Google, Michael Lippautz Google, Hannes Payer Google DOI Media Attached | ||
15:52 22mTalk | Reactive Caching for Composed Services OOPSLA | ||
16:15 22mTalk | Object-Oriented Recovery for Non-Volatile Memory OOPSLA | ||
16:37 22mTalk | Software Multiplexing: Share Your Libraries and Statically Link Them Too OOPSLA Will Dietz University of Illinois at Urbana-Champaign, Vikram S. Adve University of Illinois at Urbana-Champaign Link to publication DOI Pre-print |