{"action":"created","issue":{"url":"https://api.github.com/repos/reduxjs/react-redux/issues/1008","repository_url":"https://api.github.com/repos/reduxjs/react-redux","labels_url":"https://api.github.com/repos/reduxjs/react-redux/issues/1008/labels{/name}","comments_url":"https://api.github.com/repos/reduxjs/react-redux/issues/1008/comments","events_url":"https://api.github.com/repos/reduxjs/react-redux/issues/1008/events","html_url":"https://github.com/reduxjs/react-redux/pull/1008","id":355411359,"node_id":"MDExOlB1bGxSZXF1ZXN0MjExOTQ1ODg1","number":1008,"title":"Benchmark suite","user":{"login":"cellog","id":98250,"node_id":"MDQ6VXNlcjk4MjUw","avatar_url":"https://avatars2.githubusercontent.com/u/98250?v=4","gravatar_id":"","url":"https://api.github.com/users/cellog","html_url":"https://github.com/cellog","followers_url":"https://api.github.com/users/cellog/followers","following_url":"https://api.github.com/users/cellog/following{/other_user}","gists_url":"https://api.github.com/users/cellog/gists{/gist_id}","starred_url":"https://api.github.com/users/cellog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cellog/subscriptions","organizations_url":"https://api.github.com/users/cellog/orgs","repos_url":"https://api.github.com/users/cellog/repos","events_url":"https://api.github.com/users/cellog/events{/privacy}","received_events_url":"https://api.github.com/users/cellog/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-08-30T03:34:56Z","updated_at":"2018-09-03T19:27:56Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/reduxjs/react-redux/pulls/1008","html_url":"https://github.com/reduxjs/react-redux/pull/1008","diff_url":"https://github.com/reduxjs/react-redux/pull/1008.diff","patch_url":"https://github.com/reduxjs/react-redux/pull/1008.patch"},"body":"This PR implements #983 \r\n\r\nIt adds 2 new commands:\r\n\r\nnpm run setup:benchmarks\r\nnpm run benchmarks\r\n\r\nsetup:benchmarks is quite heavy, it builds each benchmark, and then creates a structure in `benchmark/runs` that contains a copy of each benchmark's build folder for each version of react-redux, but it only needs to be run once. It can probably be optimized, and then converted to a pre-benchmarks script.  react-redux versions are specified by dropping minified `react-redux.min.js` into `benchmarks/react-redux-versions` pre-added are versions 4.4.0, 5.0.7, and the versions represented by #995 and #1000 PRs. New benchmarks can be added as subdirectories of `benchmarks/sources` with the one @markerikson ported named as `jimbolla` since it's based on his work.\r\n\r\nTo limit runs to specific react-redux versions, one can use the `REDUX` env variable with versions separated by colon as in:\r\n\r\n```bash\r\nREDUX=5.0.7:6.0-greg npm run benchmarks\r\n```\r\n\r\nTo limit to specific benchmarks, use `BENCHMARKS` env variable as in:\r\n\r\n```bash\r\nBENCHMARKS=jimbolla npm run benchmarks\r\n```\r\n\r\n~~Note that the current version of the jimbolla benchmark appears not to work with react-redux 4.4.9, but I'm sure this can be easily fixed.~~  Example output:\r\n\r\n```\r\nGregs-MacBook-Pro:react-redux gregorybeaver$ npm run benchmarks\r\n\r\n> react-redux@5.1.0-test.1 benchmarks /Users/gregorybeaver/Documents/GitHub/react-redux\r\n> node ./benchmarks/runBenchmarks.js\r\n\r\nRunning benchmark jimbolla\r\n  react-redux version: 4.4.9\r\n    Checking max FPS... (30 seconds)\r\n    Running trace...    (30 seconds)\r\n  react-redux version: 5.0.7\r\n    Checking max FPS... (30 seconds)\r\n    Running trace...    (30 seconds)\r\n  react-redux version: 6.0-greg\r\n    Checking max FPS... (30 seconds)\r\n    Running trace...    (30 seconds)\r\n  react-redux version: 6.0-mark\r\n    Checking max FPS... (30 seconds)\r\n    Running trace...    (30 seconds)\r\njimbolla results:\r\n  --4.4.9:\r\n  FPS (average, values):  0 ;  []\r\n  Profile:  { categories: \r\n   { scripting: 22437.16899999231,\r\n     rendering: 168.67900001257658,\r\n     painting: 20.788999997079372 } }\r\nG  --5.0.7:\r\n  FPS (average, values):  18.666666666666668 ;  [ 1, 18, 19, 20, 19, 18, 19, 18, 19, 18, 19, 18, 19 ]\r\n  Profile:  { categories: \r\n   { scripting: 16651.22200011462,\r\n     rendering: 10659.14299992472,\r\n     painting: 1436.54699999094 } }\r\n  --6.0-greg:\r\n  FPS (average, values):  24.736842105263158 ;  [ 3, 24, 25, 27, 25, 29, 26, 25, 26, 24, 25, 24, 26, 24, 23, 22, 24, 23, 25, 23 ]\r\n  Profile:  { categories: \r\n   { scripting: 14569.813999965787,\r\n     rendering: 11497.913000144064,\r\n     painting: 2019.5350000336766 } }\r\n  --6.0-mark:\r\n  FPS (average, values):  17.25 ;  [ 1, 18, 19, 18, 19, 18, 17, 18, 17, 16, 17, 16, 17, 16, 17, 16, 17 ]\r\n  Profile:  { categories: \r\n   { scripting: 18397.604999758303,\r\n     rendering: 9224.441999822855,\r\n     painting: 1241.0509999021888 } }\r\n```\r\n\r\n~~So a few known bugs to work out:~~\r\n\r\n * ~~the first benchmark doesn't work with react-redux 4.4.9~~ *it was working, with less than 1 fps, fixed so that if fps is that slow it shows 0 fps*\r\n * ~~the tracealyzed data isn't working quite yet~~\r\n\r\n~~These are minor details, easily worked out.~~ The heavy lifting is done, so now focus can begin on creating new benchmarks."},"comment":{"url":"https://api.github.com/repos/reduxjs/react-redux/issues/comments/418181275","html_url":"https://github.com/reduxjs/react-redux/pull/1008#issuecomment-418181275","issue_url":"https://api.github.com/repos/reduxjs/react-redux/issues/1008","id":418181275,"node_id":"MDEyOklzc3VlQ29tbWVudDQxODE4MTI3NQ==","user":{"login":"cellog","id":98250,"node_id":"MDQ6VXNlcjk4MjUw","avatar_url":"https://avatars2.githubusercontent.com/u/98250?v=4","gravatar_id":"","url":"https://api.github.com/users/cellog","html_url":"https://github.com/cellog","followers_url":"https://api.github.com/users/cellog/followers","following_url":"https://api.github.com/users/cellog/following{/other_user}","gists_url":"https://api.github.com/users/cellog/gists{/gist_id}","starred_url":"https://api.github.com/users/cellog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cellog/subscriptions","organizations_url":"https://api.github.com/users/cellog/orgs","repos_url":"https://api.github.com/users/cellog/repos","events_url":"https://api.github.com/users/cellog/events{/privacy}","received_events_url":"https://api.github.com/users/cellog/received_events","type":"User","site_admin":false},"created_at":"2018-09-03T19:27:56Z","updated_at":"2018-09-03T19:27:56Z","author_association":"CONTRIBUTOR","body":"ok, @markerikson check it now, thanks for the feedback"}}
{"actor":{"display_login":"cellog"}}