Improve efficiency when finding execution points where the frame depth changes
Categories
(Core Graveyard :: Web Replay, defect)
Tracking
(firefox72 fixed)
Tracking | Status | |
---|---|---|
firefox72 | --- | fixed |
People
(Reporter: bhackett1024, Assigned: bhackett1024)
References
Details
Attachments
(1 file)
Many queries of the information gathered while scanning the recording require finding execution points where the frame depth changes. This is needed to enumerate the steps in a frame, find step in targets, and so forth. The change frame points that happen between two checkpoints aren't indexed in any way, and when replay.js asks for them an array of all the points is returned. When there isn't much JS executing between two checkpoints this is fine, but if there is a lot of JS then operating on the resulting array can be really bad for performance, especially because we are replaying and need a lot of overhead in marking all the allocated memory as dirty.
Ultimately, what we need to deal well with cases like this is to be able to create checkpoints while JS is running. In the interim, filtering the returned array according to the points the caller is interested in improves things quite a lot, allowing queries on firebugs.dev to complete immediately when previously they took so long the process was marked as hanged.
Assignee | ||
Comment 1•5 years ago
|
||
Pushed by bhackett@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/15820b3a254f Improve efficiency when finding execution points where the frame depth changes, r=jlast.
Comment 3•5 years ago
|
||
bugherder |
Updated•4 years ago
|
Description
•