Bug 96147 - [V8] DOM wrapper creation involves a bunch of sketchy code related to finding the Frame
Summary: [V8] DOM wrapper creation involves a bunch of sketchy code related to finding...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Adam Barth
URL:
Keywords:
Depends on: 96154 96174
Blocks: 96038
  Show dependency treegraph
 
Reported: 2012-09-07 14:09 PDT by Adam Barth
Modified: 2012-09-08 11:17 PDT (History)
3 users (show)

See Also:


Attachments
Work in progress (18.72 KB, patch)
2012-09-07 14:09 PDT, Adam Barth
no flags Details | Formatted Diff | Diff
Patch (181.37 KB, patch)
2012-09-07 16:23 PDT, Adam Barth
no flags Details | Formatted Diff | Diff
Now with test progression (185.30 KB, patch)
2012-09-07 16:32 PDT, Adam Barth
no flags Details | Formatted Diff | Diff
Patch (52.61 KB, patch)
2012-09-07 16:45 PDT, Adam Barth
no flags Details | Formatted Diff | Diff
Patch for landing (54.28 KB, patch)
2012-09-08 10:26 PDT, Adam Barth
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Adam Barth 2012-09-07 14:09:36 PDT
[V8] DOM wrapper creation involves a bunch of sketchy code related to finding the Frame
Comment 1 Adam Barth 2012-09-07 14:09:50 PDT
Created attachment 162866 [details]
Work in progress
Comment 2 Adam Barth 2012-09-07 14:16:34 PDT
This patch works great, it's just slow.

== Before ==

Running Bindings/first-child.html (1 of 1)
DESCRIPTION: This benchmark covers 'firstChild', 'lastChild', 'nextSibling' and 'previousSibling' in Dromaeo/dom-traverse.html, and other DOM attributes that return a Node object.
RESULT Bindings: first-child= 791.916889238 runs/s
median= 793.650793651 runs/s, stdev= 6.87585793436 runs/s, min= 781.25 runs/s, max= 803.011292346 runs/s
RESULT Bindings: first-child: JSHeap= 1329937.6 bytes
median= 1326148.0 bytes, stdev= 12365.9021765 bytes, min= 1319928.0 bytes, max= 1367472.0 bytes
RESULT Bindings: first-child: Malloc= 0.0 bytes
median= 0.0 bytes, stdev= 0.0 bytes, min= 0.0 bytes, max= 0.0 bytes

== After ==

Running Bindings/first-child.html (1 of 1)
DESCRIPTION: This benchmark covers 'firstChild', 'lastChild', 'nextSibling' and 'previousSibling' in Dromaeo/dom-traverse.html, and other DOM attributes that return a Node object.
RESULT Bindings: first-child= 365.905414836 runs/s
median= 369.393139842 runs/s, stdev= 10.5470471025 runs/s, min= 325.814536341 runs/s, max= 372.836218375 runs/s
RESULT Bindings: first-child: JSHeap= 1329978.4 bytes
median= 1326000.0 bytes, stdev= 12336.8814471 bytes, min= 1319856.0 bytes, max= 1367488.0 bytes
RESULT Bindings: first-child: Malloc= 0.0 bytes
median= 0.0 bytes, stdev= 0.0 bytes, min= 0.0 bytes, max= 0.0 bytes
Comment 3 Adam Barth 2012-09-07 16:23:01 PDT
Created attachment 162897 [details]
Patch
Comment 4 Adam Barth 2012-09-07 16:24:35 PDT
This patch works and is fast, but might be too large to review.  Here's the patch broken down into a number of smaller steps:

https://github.com/abarth/webkit/compare/master...CreationContext

I'll post each step as an individual patch.
Comment 5 Adam Barth 2012-09-07 16:32:23 PDT
Created attachment 162900 [details]
Now with test progression
Comment 6 Adam Barth 2012-09-07 16:45:49 PDT
Created attachment 162904 [details]
Patch
Comment 7 Adam Barth 2012-09-07 18:38:41 PDT
Committed r127955: <http://trac.webkit.org/changeset/127955>
Comment 8 WebKit Review Bot 2012-09-07 21:58:12 PDT
Re-opened since this is blocked by 96174
Comment 9 Adam Barth 2012-09-08 10:26:00 PDT
Created attachment 162959 [details]
Patch for landing
Comment 10 WebKit Review Bot 2012-09-08 11:17:17 PDT
Comment on attachment 162959 [details]
Patch for landing

Clearing flags on attachment: 162959

Committed r127972: <http://trac.webkit.org/changeset/127972>
Comment 11 WebKit Review Bot 2012-09-08 11:17:20 PDT
All reviewed patches have been landed.  Closing bug.