Bug 83268
| Summary: | [Meta][Performance] Major DOM tree traversal should be de-virtualized as possible | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Hajime Morrita <morrita> |
| Component: | DOM | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | ahmad.saleem792, apavlov, ap, bfulgham, catfish.man, kling, rniwa |
| Priority: | P2 | ||
| Version: | 528+ (Nightly build) | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Bug Depends on: | 82701, 83269, 86175 | ||
| Bug Blocks: | |||
Hajime Morrita
There are many virtual methods which does DOM tree traversal and node-specific actions.
But some of there method has only a few overrides other than one for tree traversal its self.
Such methods includes insertedIntoDocument, insertedIntoTree, removedFromDocument, removedFromTree, willRemove, attach and detach.
It looks possible to de-virtualize (and even inline) these method by
- pull tree traversal out from ContainerNode/Element
- Employ a node flags to declare the existence of overrides
- inline methods for major DOM classes (that include Text and Element)
Since a large part of DOM nodes don't have node-specific overrides other than major classes above,
These inlining will gain certain performance win.
I'll start from easier ones and see how it work.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Ahmad Saleem
rniwa@webkit.org - All dependent bugs are fixed, is something separately needed for this META bug? Appreciate your input. Thanks!
Ryosuke Niwa
Yeah, this is done.