Closed
Bug 309111
Opened 20 years ago
Closed 15 years ago
Finding the prevsibling on a content insertion can be costly
Categories
(Core :: Layout, defect)
Core
Layout
Tracking
()
RESOLVED
FIXED
People
(Reporter: bzbarsky, Assigned: bzbarsky)
References
Details
(Keywords: perf)
This is one of the causes of bug 304598. Basically, the prev sibling content
node is a text node, so we end up doing an O(N) walk looking for the right
prevsibiling frame on each insertion, making the whole thing O(N^2).
I'm going to see whether I can make this a little smarter...
![]() |
Assignee | |
Comment 1•20 years ago
|
||
Ah, the real problem is not just that the prevsibling is a text node, but also
that the previous element before the text node has an inline frame (which is
therefore not in the frame map). So we call into FindPrimaryFrameFor() with no
hint.
My first instinct is to make the hint-finding code keep going backwards till it
finds a hint instead of stopping at the first element. In the absolute
worst-case scenario (lots of preceding siblings with no frames) this will be
slow, of course (about double the current time, probably). But if we have any
previous sibling at all after the point halfway between us and and the beginning
of our parent that has a frame, this ought to be a win, I think....
I'm still trying to think of a way that I could make this into a binary search
or something somehow.
![]() |
Assignee | |
Comment 2•15 years ago
|
||
Bug 500882 made this problem go away (in the sense that we don't have to do this FindPrimaryFrameFor stuff anymore).
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Updated•7 years ago
|
Product: Core → Core Graveyard
Updated•7 years ago
|
Component: Layout: Misc Code → Layout
Product: Core Graveyard → Core
You need to log in
before you can comment on or make changes to this bug.
Description
•