I have a WIP patch stack for this. Looking at Linux64 numbers on Try: * Base Content JS is about 35K (~1.4%) less. * For awsy-tp6 the improvement is a bit bigger, ~4% for JS memory. * Speedometer and JetStream 2 aren't affected much, maybe a tiny bit faster but hard to say with only a few data points. Memory reports are mostly as expected: * Objects are smaller. * ObjectGroups are gone. * Shapes have an extra word so use more memory. * BaseShapes are one word bigger as well, but there are fewer of them because a ShapeTable/ShapeIC no longer requires a new BaseShape, so their memory usage shrinks. It's then similar to current ObjectGroup memory (expected because this basically turns BaseShape into ObjectGroup). The number of GC-things drops a bit (no more groups, fewer BaseShapes) so I hope that will have a positive impact. This also removes a lot of complexity (object groups, owned BaseShapes) so I'm pretty happy with it.
Bug 1689413 Comment 4 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
I have a WIP patch stack for this. Looking at Linux64 numbers on Try: * Base Content JS is about 35K (~1.4%) less. * For awsy-tp6 the improvement is a bit bigger, ~4% for JS memory. * Speedometer and JetStream 2 aren't affected much, maybe a tiny bit faster but hard to say with only a few data points. Memory reports are mostly as expected: * Objects are smaller. * ObjectGroups are gone. * Shapes have an extra word so use more memory. * BaseShapes are one word smaller; a ShapeTable/ShapeIC no longer requires a new BaseShape. Memory usage is similar to current ObjectGroup memory (expected because this basically turns BaseShape into ObjectGroup). The number of GC-things drops a bit (no more groups, fewer BaseShapes) so I hope that will have a positive impact. This also removes a lot of complexity (object groups, owned BaseShapes) so I'm pretty happy with it.