我正在使用 React、Redux 和 Websocket 实现/评估“实时”Web 应用程序。在服务器上,我的数据集以每秒大约 32 次更改的速度发生更改。
每次更改都会使用 Websocket 向应用程序发送一条异步消息。异步消息在我的 redux 状态下启动 RECEIVE 操作。状态变化导致组件渲染。
我担心的是,状态更改的频率会导致客户端出现不可接受的负载,但我不确定如何根据消息数量、组件数量等来表征负载。
这什么时候会成为问题,或者我将使用什么工具来确定这是否是一个问题?
我的状态的“形状”会对渲染性能产生影响吗?我是否应该考虑将高变化对象放置在一个实体中,而将低变化对象放置在另一实体中?
我是否应该集中精力对更改事件进行批处理,以便应用程序可以响应更改列表而不是每个单独的更改(有效降低状态更改率)?
我很感激任何建议。
这些实际上是相当合理的问题,是的,这些听起来确实都是值得考虑的好方法。
作为一个想法 - 你说你的服务器端数据更改每秒发生 32 次。这些信息本身可以批量处理吗?您真的需要显示每一个更新吗?
您可能对 Redux 常见问题解答的“性能”部分感兴趣,其中包括以下问题的答案“缩放” http://redux.js.org/docs/FAQ.html#performance-scaling and 减少商店订阅更新的数量 http://redux.js.org/docs/FAQ.html#performance-update-events.
根据更新频率部分地对状态进行分组听起来是个好主意。未订阅该块的组件应该能够根据 React Redux 的内置浅层相等检查跳过更新。
我将添加几个额外的有用链接,以获取与性能相关的信息和库。我的 React/Redux 链接存储库有一个部分反应性能 https://github.com/markerikson/react-redux-links/blob/master/react-performance.md,我的 Redux 库链接存储库有相关部分商店更改订阅 https://github.com/markerikson/redux-ecosystem-links/blob/master/store.md#store-change-subscriptions and 组件更新监控 https://github.com/markerikson/redux-ecosystem-links/blob/master/devtools.md#component-update-monitoring.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)