10s+ delay from hitting breakpoint to source showing
Categories
(DevTools :: Debugger, defect, P2)
Tracking
(Not tracked)
People
(Reporter: Harald, Unassigned)
References
(Blocks 1 open bug)
Details
What were you doing?
- Open Debugger on https://debugger-pretty-print-events-1532240.glitch.me/
- Enable
mousemove
in Event Listener Breakpoints - Close Debugger
- Open Debugger and move mouse over page
What happened?
- Paused overlay shows instantly, Call stack shows a function reference
- No file is shown
- Debugger seems idle for 10s
- 10s later the file shows, triggering 3 expensive reflows: https://perfht.ml/2BIsTKc
- After that, several expensive double-reflows from bug 1591000: https://perfht.ml/2JiMJjo
What should have happened?
At least: Show that file is loading earlier.
Even better: Don't make users wait 10sec
Anything else we should know?
parser-worker.js
takes
- Mostly
extractSymbols
- 1.5sec for a structured clone to post the data back: https://perfht.ml/2W8ONzQ
Sending data then causes 1.5sec of structured clone reading. https://perfht.ml/33SM6oG
Reporter | ||
Comment 1•5 years ago
|
||
Is there anything obviously wrong with how the UI waits for parsing?
Comment 2•5 years ago
|
||
No, I think it's possibly just a general "large file" problem:
We add the tab based on source, which we remap once we mapLocation, which relies on sourcemaps.
We should create a "large files" meta where we track these and put them into a dbg-7* sprint.
Reporter | ||
Comment 3•5 years ago
|
||
David, what about:
At least: Show that file is loading earlier.
At least having UI state would help a lot.
We add the tab based on source, which we remap once we mapLocation, which relies on sourcemaps.
How does sourcemaps affect this STR?
Comment 4•5 years ago
|
||
Some things I've found interesting in https://perfht.ml/362xmWg at first glance:
- 421ms spent in a getter at
get resource://devtools/client/debugger/dist/parser-worker.js:653
- 291ms spent in another getter at
get type
resource://devtools/client/debugger/dist/parser-worker.js:17247:10` - 213ms spent in another getter at
get node resource://devtools/client/debugger/dist/parser-worker.js:17211:10
The first one is probably added by Babel/Webpack, while the last ones come from simple-path.js
.
At least: Show that file is loading earlier.
https://phabricator.services.mozilla.com/D50255 should help with that.
Comment 5•5 years ago
|
||
This bug was caused by https://phabricator.services.mozilla.com/D50564
We can't reproduce this anymore.
Description
•