Efficient garbage collection is a key goal in engineering high-performance runtime systems.
To reduce pause times, many collector designs traverse the object graph concurrently with the application, an optimization known as concurrent marking.
Traditional concurrent marking imposes strict invariants on the object shapes: 1) static type layout of objects, 2) static object memory locations, 3) static object sizes.
Taking V8 as an example, we show that some object shape changes are safe and can be handled by traditional concurrent marking algorithms.
For unsafe shape changes, we introduce novel wait-free object snapshotting and lock-based concurrent marking algorithms and prove that they preserve key invariants.
Concurrent marking of shape-changing objects using the wait-free object snapshotting algorithm is enabled by default in Chrome since version 64.
Sun 23 Jun
|14:00 - 14:50|
Shan LuUniversity of Chicago
|14:50 - 15:15|
|15:15 - 15:40|