Open Bug 1810226 Opened 2 years ago Updated 1 years ago

Consider flattening ropes during tenuring

Categories

(Core :: JavaScript: GC, task, P3)

task

Tracking

()

People

(Reporter: sfink, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [sp3])

Ropes can be flattened for many reasons. We don't know if it's actually worthwhile to keep ropes unflattened for long. One possibility would be to do the flattening during tenuring—if the rope survives long enough to be tenured, there's a good chance it will end up getting flattened eventually. How good, I don't know.

One unfortunate thing about this: flattening a deep rope may produce lots of dependent strings, most of them unreferenced. It would be better to flatten before (or at the beginning of) a minor GC, so that those dependent strings will not clutter up the major GC heap. But this is no worse than now, and the number of generated dependent strings is somewhat reduced by the substrings that are small enough to fit into an inline string.

Severity: -- → N/A
Priority: -- → P3
Whiteboard: [sp3]
You need to log in before you can comment on or make changes to this bug.