Thu 8 Nov 2018 15:30 - 15:52 at Studio 1 - Performance Chair(s): Adam Welc

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

splash-2018-OOPSLA
15:30 - 17:00: OOPSLA - Performance at Studio 1
Chair(s): Adam WelcUber Technologies
splash-2018-OOPSLA15:30 - 15:52
Talk
DOI Media Attached
splash-2018-OOPSLA15:52 - 16:15
Talk
Sebastian BurckhardtMicrosoft Research, Tim CoppietersVrije Universiteit Brussel, Belgium
splash-2018-OOPSLA16:15 - 16:37
Talk
Nachshon CohenEPFL, Switzerland, David T. AksunEPFL, James LarusEPFL
splash-2018-OOPSLA16:37 - 17:00
Talk
Will DietzUniversity of Illinois at Urbana-Champaign, Vikram AdveUniversity of Illinois at Urbana-Champaign
Link to publication DOI Pre-print