Record CPU traces from screenshot runs #791
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This builds on #790 and #789, happy to rebase as needed.
When debugging performance problems with screenshots, it's helpful to have a flamegraph of what's taking time.
It's difficult to mount a debugger into the internal story isolate. This PR enables a
--trace
cli option that records a Chromium CPU trace of the screenshot and saves it alongside the screenshotfilename.png
asfilename_trace.json
.This trace can be imported into Chrome's Performance Flamegraph or https://ui.perfetto.dev/ for viewing.
This is especially helpful for situations like:
Despite the screenshot not succeeding, the trace of the last attempt will still be written, and we can plainly see that this particular screenshot continues work forever, never giving the metrics a chance to stabilise: