-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Perf Test: Flamegraphs #9550
Perf Test: Flamegraphs #9550
Conversation
…ersion. Fix React render consumption caused by use of fragments.
…from perf-test app.
apps/perf-test/tasks/perf-test.js
Outdated
|
||
// A high number of iterations are needed to get visualization of lower level calls that are infrequently hit by ticks. | ||
// TODO: change to 5000 | ||
const iterations = 10; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Worth defaulting to 5000
but allow for CLI arg?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Possibly. I think it'd also be useful to control which scenarios are running as most people who run locally will most likely only care about one or two.
I had to make this PR to test PR integration and work with Ken to fix up a deploy issue. Will be doing more cleanup along the way. |
Size Auditor did not detect a change in bundle size for any component! |
Component Perf Analysis:
|
Yay, flamegraph links are working. Master in this case is still old perf-test, so results won't be comparable until after this PR is merged. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
okay, minor nits about where to put TODO notes and perf notes, but looks after realizing the outfileMaster != outfilePR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the bunch of things I looked at, looks good to me. Did not read the new perf-test.js line by line - primarily looked at overall structure and high level approach.
* Port changes from 6.0 to master. * WIP: working on scenario list * scenario list go! * fix shrinkwrap * scenariolist fix * hooking it up with perf-test * Clean up flamegraphs regressed from webpack server to local file conversion. Fix React render consumption caused by use of fragments. * Add master reference tests. Generate results blob. Add all scenarios from perf-test app. * Fix master URL. * Fix shrinkwrap. * Add path for perf-tests task since it was removed from root config. * Fix perf-test command. * Copy perf test results to PR deploy site. Add BaseButtonNew case. * Tweak output. * Final cleanup. * Disable puppeteer timeout.
Pull request checklist
$ npm run change
Description of changes
This PR replaces the existing perf test table with a new process that generates profiles using Puppeteer / V8 and uses those profiles to generate flamegraphs. All sample counts and flamegraphs will be added as comments to the PR, just as existing perf test package operates.
There are many improvements to come, but for now this first iteration provides the following:
Hopefully examples will show up when this PR builds.
Microsoft Reviewers: Open in CodeFlow