mirror of
https://github.com/facebook/react.git
synced 2026-02-23 20:23:02 +00:00
* Initial commit for WIP benchmarking infrastructure * fixed lint issues and ran prettier * added <rootDir>/scripts/bench/ to ignore paths for Jest * tidied up code and fixed a few bugs in the runner.js * fixed eslint * improved the benchmark output from the runner * fixed typo * tided up print output in runner.js * throw error if chrome canary is not installed on mac * added better bench stats output (tables) * added benchmark diff to table results * adds bundle size comparisons to results * tidied up the results * fixed prettier output * attempt to trigger bech for circleci build * fixes flow exlclusion for lighthouse module * added class components benchmark * cleaned up stats.js * stability changes * circleci node version to 7 * added another benchmark * added colours to the different benchmarks to check if being cached * force no-cache headers * added more info messages * refactor chrome launching. * fixed an issue where launcher.kill might fail * Move server to runner. Launch it only once. * tidy up * changes the logic in how the remote repo is checked out * removes bench from circleci build * removed colors from benchmarks (no longer needed) * added CI integration comment * added hacker news benchmark * added skipBuild functionality * relabelled remote * Add confidence intervals * added first meaningful paint * removed some unused code * reverted code.json * updated benchmark runs back to 10 * no longer breaks when results contain missing bundles * adds CPU throttling * renamed build to remote-repo * small fix to build * fixed bad merge * upped runs to 10 from 2 again * properly pulls master * removes old-bench * runs benchmarks in headless mode * adds a --headless option * improved the git build process * added README * updated based feedback from review * adds merge base commit sha * addressing more PR feedback * remove built JS react files * updated .gitignore * added combined bundle load times to the metrics
React Benchmarking
Commands
In most cases, the only two commands you might want to use are:
yarn benchyarn build -- --type=UMD_PROD && yarn bench -- --skip-build
The first command will run benchmarks with all the default settings. A local and remote build will occcur on all bundles, both local and remote repos will be run against all benchmarks.
The second command will run all benchmarks but skip the build process. This is useful for when doing local performance tweaking and the remote repo has already had its bundles built. Bboth local and remote repos will be run against all benchmarks with this command too.
The other commands are as follows:
# will compare local repo vs remote merge base repo
yarn bench
# will compare local repo vs remote merge base repo
# this can significantly improve bench times due to no build
yarn bench -- --skip-build
# will only build and run local repo against benchmarks (no remote values will be shown)
yarn bench -- --local
# will only build and run remote merge base repo against benchmarks (no local values will be shown)
yarn bench -- --remote
# will only build and run remote master repo against benchmarks
yarn bench -- --remote=master
# same as "yarn bench"
yarn bench -- --remote --local
# runs benchmarks with Chrome in headless mode
yarn bench -- --headless
# runs only specific string matching benchmarks
yarn bench -- --benchmark=hacker