{"action":"created","issue":{"url":"https://api.github.com/repos/threepointone/redux-react-local/issues/15","repository_url":"https://api.github.com/repos/threepointone/redux-react-local","labels_url":"https://api.github.com/repos/threepointone/redux-react-local/issues/15/labels{/name}","comments_url":"https://api.github.com/repos/threepointone/redux-react-local/issues/15/comments","events_url":"https://api.github.com/repos/threepointone/redux-react-local/issues/15/events","html_url":"https://github.com/threepointone/redux-react-local/issues/15","id":135783866,"number":15,"title":"explore a better data structure for `state.local`","user":{"login":"threepointone","id":18808,"avatar_url":"https://avatars.githubusercontent.com/u/18808?v=3","gravatar_id":"","url":"https://api.github.com/users/threepointone","html_url":"https://github.com/threepointone","followers_url":"https://api.github.com/users/threepointone/followers","following_url":"https://api.github.com/users/threepointone/following{/other_user}","gists_url":"https://api.github.com/users/threepointone/gists{/gist_id}","starred_url":"https://api.github.com/users/threepointone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/threepointone/subscriptions","organizations_url":"https://api.github.com/users/threepointone/orgs","repos_url":"https://api.github.com/users/threepointone/repos","events_url":"https://api.github.com/users/threepointone/events{/privacy}","received_events_url":"https://api.github.com/users/threepointone/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-02-23T16:18:22Z","updated_at":"2016-02-24T13:46:50Z","closed_at":null,"body":"on my laptop, `stress.js` tops out around 1.2k elements, while plain `this.setState` goes beyond 12k. the biggest culprit is `Object.assign`, understandably. investigating libs like `seamless-immutable` to make this faster."},"comment":{"url":"https://api.github.com/repos/threepointone/redux-react-local/issues/comments/188261676","html_url":"https://github.com/threepointone/redux-react-local/issues/15#issuecomment-188261676","issue_url":"https://api.github.com/repos/threepointone/redux-react-local/issues/15","id":188261676,"user":{"login":"threepointone","id":18808,"avatar_url":"https://avatars.githubusercontent.com/u/18808?v=3","gravatar_id":"","url":"https://api.github.com/users/threepointone","html_url":"https://github.com/threepointone","followers_url":"https://api.github.com/users/threepointone/followers","following_url":"https://api.github.com/users/threepointone/following{/other_user}","gists_url":"https://api.github.com/users/threepointone/gists{/gist_id}","starred_url":"https://api.github.com/users/threepointone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/threepointone/subscriptions","organizations_url":"https://api.github.com/users/threepointone/orgs","repos_url":"https://api.github.com/users/threepointone/repos","events_url":"https://api.github.com/users/threepointone/events{/privacy}","received_events_url":"https://api.github.com/users/threepointone/received_events","type":"User","site_admin":false},"created_at":"2016-02-24T13:46:50Z","updated_at":"2016-02-24T13:46:50Z","body":"`seamless-immutable` didn't help at all, but I did do a refactor that uses regular mutable objects (wrapped with a new object for every state change) - available in [this branch](https://github.com/threepointone/redux-react-local/tree/mutable). The performance is *much* better, got up to 10k elements before the laptop started choking. \r\n\r\n- this changes the api to read data via `@connect` from `state.local[ident]` to `state.local.get(ident)`\r\n- this will probably break devtools/replay. must investigate.\r\n- it breaks redux-optimist :(\r\n\r\nthere must be a middle ground somewhere. will try to find it. \r\n"}}