-
Notifications
You must be signed in to change notification settings - Fork 78
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
Potential improvements to state management performance, possibly making it pluggable #48
Comments
I've got a WIP branch where I've ripped out "State" as a pluggable interface in the store, and an ImmutableJS implementation. It's at the point of compiling but not running yet. That's here: https://github.com/maier49/framework/tree/48-patch-performance |
Some thoughts about putting Stores in a workerI've been exploring how to put the Store in a worker. @agubler previous attempted this on a branch https://github.com/agubler/stores/tree/store-worker-poc. I had my own attempt and so far the problems I hit trying to achieve this were:
My attempts can be seen here: https://github.com/JamesMilnerUK/framework/tree/worker Overall my thoughts are it's possible, but it's a bit fiddly and the limitations are a bit annoying. One thing I've thought was offering some sort of Web Worker support via |
Resolved by #242 |
@maier49 commented on Fri May 11 2018
For large state stores, things like ImmutableJS are recommended by the redux team as a way to improve update performance. On the other hand ImmutableJS can be quite slow for operations like finding a value.
Making the actual state management portion of the store pluggable would allow a user to implement something that suits their needs without making additional assumptions.
Alternatively, or in addition to this, we could look into general performance improvements such as doing updates in a web worker, since we completely control the "reduction" part of the store life cycle.
The text was updated successfully, but these errors were encountered: