It's really common for modern web apps (react, angular, etc) to have large call stacks. This will be especially true when we include async call stacks. The large call stacks require significant time to serialize the forms. https://perfht.ml/2r2twqk It would be nice if frame forms deferred serializing their environment's form until the client requested it. This can have a large performance improvement: when i tested the patch on a typical react app stepping times went from 800ms to 100ms.
Created attachment 8875412 [details] [diff] [review] skip-frames-envs-1.patch
Created attachment 8875415 [details] [diff] [review] skip-frames-envs-2.patch oops, small typo
Comment on attachment 8875415 [details] [diff] [review] skip-frames-envs-2.patch Review of attachment 8875415 [details] [diff] [review]: ----------------------------------------------------------------- Looks good, one comment. ::: devtools/server/actors/frame.js @@ +77,5 @@ > + // NOTE: ignoreFrameEnvironment lets the client explicitly avoid > + // populating form environments on pause. > + if ( > + this.frame.environment && > + !this.threadActor._options.ignoreFrameEnvironment Is `this.frame` a Debugger.Frame object? If so, I would reverse the order of these two terms. Simply testing this.frame.environment causes it to build the Debugger.Environment object, so if we can avoid that when we won't use it, that would be best.
Attachment #8875415 - Flags: review?(jimb) → review+
Created attachment 8875473 [details] [diff] [review] skip-frames-envs-3.patch
Attachment #8875415 - Attachment is obsolete: true
added checkin-needed, but feel free to wait until things cool down.
Pushed by email@example.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/f7d5030aee45 Fetch environments on demand. r=jimb
Status: NEW → RESOLVED
Last Resolved: 7 months ago
status-firefox55: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → Firefox 55
You need to log in before you can comment on or make changes to this bug.