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
Times are displayed in time zone: Guadalajara, Mexico City, Monterrey change

15:30 - 17:00: PerformanceOOPSLA at Studio 1
Chair(s): Adam WelcUber Technologies
15:30 - 15:52
Cross-Component Garbage Collection
DOI Media Attached
15:52 - 16:15
Reactive Caching for Composed Services
Sebastian BurckhardtMicrosoft Research, Tim CoppietersVrije Universiteit Brussel, Belgium
16:15 - 16:37
Object-Oriented Recovery for Non-Volatile Memory
Nachshon CohenEPFL, Switzerland, David T. AksunEPFL, James LarusEPFL
16:37 - 17:00
Software Multiplexing: Share Your Libraries and Statically Link Them Too
Will DietzUniversity of Illinois at Urbana-Champaign, Vikram S. AdveUniversity of Illinois at Urbana-Champaign
Link to publication DOI Pre-print