WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
135399
Web Inspector: 80% of time during recording is spent creating source code locations for profile nodes
https://bugs.webkit.org/show_bug.cgi?id=135399
Summary
Web Inspector: 80% of time during recording is spent creating source code loc...
Joseph Pecoraro
Reported
2014-07-29 15:43:16 PDT
* SUMMARY Recording a timeline of the inspector recording a timeline of logging into a website, 80% of the work Web Inspector was doing was creating source code location objects for ProfileNodes that were not even visible in the timeline overview. These source code locations should not be computed eagerly. especially because there are so many of them (1 per function call). * STEPS TO REPRODUCE 1. Inspect iCloud.com 2. In inspector¹ select a large range in the timeline (0-20s) 3. Inspect inspector¹ 4. Start a timeline in inspector² 5. Reload the page => very long time and hangs
Attachments
[PATCH] Proposed Fix
(34.10 KB, patch)
2014-07-29 21:13 PDT
,
Joseph Pecoraro
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2014-07-29 15:44:22 PDT
<
rdar://problem/17848962
>
Joseph Pecoraro
Comment 2
2014-07-29 21:13:36 PDT
Created
attachment 235732
[details]
[PATCH] Proposed Fix I attempted to merge LazySourceCodeLocation into SourceCodeLocation, but I wasn't see-ing the same performance wins as this patch, so I decided to go back to this. Ultimately I think it would make sense to fold this into SourceCodeLocation if it is possible. For now, I think this is a good compromise.
Timothy Hatcher
Comment 3
2014-07-29 22:10:50 PDT
Comment on
attachment 235732
[details]
[PATCH] Proposed Fix View in context:
https://bugs.webkit.org/attachment.cgi?id=235732&action=review
> Source/WebInspectorUI/UserInterface/Models/ScriptTimelineRecord.js:281 > + _initializeProfileFromPayload: function(payload)
As much as I hate leaking protocol data past the controllers into the model, I this this is fine for the perf win.
WebKit Commit Bot
Comment 4
2014-07-29 22:42:38 PDT
Comment on
attachment 235732
[details]
[PATCH] Proposed Fix Clearing flags on attachment: 235732 Committed
r171790
: <
http://trac.webkit.org/changeset/171790
>
WebKit Commit Bot
Comment 5
2014-07-29 22:42:41 PDT
All reviewed patches have been landed. Closing bug.
Joseph Pecoraro
Comment 6
2014-07-30 10:50:00 PDT
(In reply to
comment #3
)
> (From update of
attachment 235732
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=235732&action=review
> > > Source/WebInspectorUI/UserInterface/Models/ScriptTimelineRecord.js:281 > > + _initializeProfileFromPayload: function(payload) > > As much as I hate leaking protocol data past the controllers into the model, I this this is fine for the perf win.
The profileFromPayload could go anywhere (it could go in TimelineManager). It is a standalone factory like method.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug