Closed Bug 1593566 Opened 5 years ago Closed 5 years ago

Improve efficiency when finding execution points where the frame depth changes

Categories

(Core Graveyard :: Web Replay, defect)

defect
Not set
normal

Tracking

(firefox72 fixed)

RESOLVED FIXED
mozilla72
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.

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.
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla72
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: