我正在实施/评估"实时"使用React,Redux和Websocket的Web应用程序。在服务器上,我的数据集发生了大约每秒32次更改的速率。
每次更改都会导致使用Websocket向应用程序发送异步消息。异步消息在我的redux状态下启动RECEIVE操作。状态变化导致组件渲染。
我担心状态变化的频率会导致客户端负载不可接受,但我不确定如何根据消息数量,组件数量等来表征负载。
什么时候会成为一个问题,或者我会用什么工具来判断它是否有问题?
"形状"我的状态对渲染性能有影响吗?我应该考虑将高变更对象放在一个实体中,而低变更对象是否在另一个实体中?
我是否应该集中精力对变更事件进行批处理,以便应用程序可以响应变更列表而不是每次更改(有效降低状态变化率)?
我感谢任何建议。
答案 0 :(得分:0)
这些问题实际上是非常合理的问题,是的,那些听起来都像是看待的好方法。
作为一个想法 - 你说你的服务器端数据变化每秒发生32次。这些信息本身可以完全分批吗?你真的需要显示每一次更新吗?
您可能会对Redux常见问题解答的“效果”部分感兴趣,其中包括"scaling"和reducing the number of store subscription updates的答案。
根据更新频率对您的州进行部分分组听起来是个好主意。未订阅该块的组件应该能够根据React Redux的内置浅等式检查跳过更新。
我将为性能相关信息和库提供其他几个有用的链接。我的React / Redux链接repo在React performance上有一个部分,我的Redux库链接repo在store change subscriptions和component update monitoring上有相关部分。