Performance benchmark harness for React-Redux
This repo expects that you are using Yarn for package management.
yarn initialize
yarn startAfter benchmarks have been initialized, you can run with simply:
yarn startTo specify a single version:
REDUX=5.0.7 yarn startTo specify running against multiple versions:
REDUX=5.0.7:4.4.9 yarn startTo run a specific benchmark:
BENCHMARKS=stockticker yarn startor specific benchmarks:
BENCHMARKS=stockticker:another yarn startBy default, benchmarks run for 30 seconds. To change this, use
SECONDS=10 yarn startBenchmarks live in the sources/ directory. Each benchmark must insert this
code into index.js:
import 'fps-emit'In addition, a config-overrides.js must be created with these contents:
module.exports = function override(config, env) {
//do stuff with the webpack config...
console.log(`Environment: ${env}`)
if(env === "production") {
config.externals = {
"react" : "React",
"redux" : "Redux",
"react-redux" : "ReactRedux",
}
}
return config;
}and the scripts section of package.json should be changed to:
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired --env=jsdom",
...
}Also, index.html must be modified to include these lines:
<script type="text/javascript" src="redux.min.js"></script>
<script type="text/javascript" src="react.production.min.js"></script>
<script type="text/javascript" src="react-dom.production.min.js"></script>
<script type="text/javascript" src="react-redux.min.js"></script>If you need to make changes to the fps-emit package, bump the version number in its package.json,
then update each benchmark to use the newest version using yarn upgrade-interactive and selecting fps-emit
for an update. Then rebuild all the benchmarks using yarn initialize