[meta] Pretenure long-lived allocations
Categories
(Core :: JavaScript: GC, enhancement, P2)
Tracking
()
People
(Reporter: jonco, Assigned: jonco)
References
(Depends on 4 open bugs, Blocks 1 open bug)
Details
(Keywords: meta)
We currently assume the generational hypothesis holds and make allocations in the nursery whenever possible. This is a good default but is not true for all workloads, and when it doesn't hold we see many long nursery collections.
Previously, we supported some pre-tenuring via information associated with ObjectGroups, but these were removed in bug 1689413.
We'd like to do something like V8 does and record information about specific allocation sites to enable us to decide when it's worth pretenuring allocations made at that site. This could apply to strings and BigInts as well as JS objects, which were not supported by the previous scheme.
See the Google paper on this: https://storage.googleapis.com/pub-tools-public-publication-data/pdf/43823.pdf
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 3•9 months ago
|
||
Support for object literal and array literal allocation sites landed in bug 1711063 but there is more work that can be done here.
Minor GCs with high promotion rates during Speedometer 3 and the matrix react benchmarks indicate that we may be missing opportunities to pretenure long lived allocations.
Description
•