See bug 1363335. There is a lot of cost we're paying there under an innerHTML setter just deleting frames, and it's mostly hashtable lookups and allocator overhead, so it seems like we should be able to do a lot better... Jet, can you please find an owner? This is a Quantum Release Criteria blocker.
Link to profile: https://perfht.ml/2rgD0T5
Jonathan: please let us know if your HashTable changes will help this case, and also if this is another case of free() being an expensive call in some cases. Thx!
Flags: needinfo?(bugs) → needinfo?(jfkthame)
It looks like we have several hashtables that get involved here. I'm hoping to eliminate the PresContext's FramePropertyTable completely, so that may help somewhat, but we also have nsPropertyTable on the dom side, and the FrameManager has its UndisplayedMap hashes; I'm not currently touching those. I hope to have a testable patch in bug 1365982 pretty soon, so then we can re-profile and see how much things change.
Link to a slightly more fine-grained profile: https://perfht.ml/2qTwGOC
Assigning this to jwatt for now. He'll re-profile after landing the fix for bug 1367214.
Assignee: nobody → jwatt
Calling this [qf:meta] since it seems the work here is all happening in dependent bugs.
Whiteboard: [qf:p1] → [qf:meta]
2 years ago
Ehsan, all this bugs blockers are now fixed. Since you filed this bug, is there anything else you've seen that would warrant keeping this bug open?
No, I think we can close this, thanks! Also not sure why this bug was marked as "stale" or what that means, but clearing that keyword since that seems to be misguided.
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.