Closed Bug 1365783 Opened 8 years ago Closed 7 years ago

[meta] Deleting frames under nsCSSFrameConstructor::ContentRemoved() can be really expensive

Categories

(Core :: Layout, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED
Performance Impact ?

People

(Reporter: ehsan.akhgari, Assigned: jwatt)

References

()

Details

(Keywords: meta)

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.
Flags: needinfo?(bugs)
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.
Flags: needinfo?(jfkthame)
Depends on: 1365982
Depends on: 1367206
Depends on: 1367207
Depends on: 1367209
Depends on: 1367214
Depends on: 1367217
Depends on: 1367219
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
Status: NEW → ASSIGNED
Priority: -- → P1
Calling this [qf:meta] since it seems the work here is all happening in dependent bugs.
Whiteboard: [qf:p1] → [qf:meta]
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?
Flags: needinfo?(ehsan)
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.
Flags: needinfo?(ehsan)
Keywords: stale-bug
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Performance Impact: --- → ?
Keywords: meta
Whiteboard: [qf:meta]
Summary: Deleting frames under nsCSSFrameConstructor::ContentRemoved() can be really expensive → [meta] Deleting frames under nsCSSFrameConstructor::ContentRemoved() can be really expensive
You need to log in before you can comment on or make changes to this bug.