DLS 2019
Sun 20 - Fri 25 October 2019 Athens, Greece
co-located with SPLASH 2019

Major browsers these days are composed of a myriad of different internal or external components or libraries that provide capabilities to their respective web platform implementation. Chrome is no different here as requests for presenting a webpage are forwarded to the Blink rendering engine. Blink maintains an implementation of the document object model (DOM) that represents a webpage and delegates specific tasks to subcomponents, the building blocks of the platform. E.g., execution of JavaScript (JS), often used to manipulate the DOM implemented in Blink, is carried out by the high-performance virtual machine V8. Similarly, Blink delegates to other subcomponents for styling, layouting, painting, and compositing of a webpage. Unsurprisingly, many of these building blocks come with their own customized memory management resulting in a potpourri of constraints, APIs, and interactions. This talk will provide a high-level overview of the memory architecture used to manage the DOM and JS, including the different object models and cherry-pick specific challenges that arise when multiple garbage collectors collaborate on providing effective, efficient, and safe reclamation of unused memory in such a heterogeneous environment.