将大型集合保存到存储时,Redux 似乎很慢

Rec*_*ipe 5 javascript reactjs redux react-redux

简化情况:

我正在开发一个实时应用程序,需要将大约 650 个对象作为数组保存到Redux store.

该应用程序拥有 ReactJs - Redux - ImmutableJs - Reselect 技术堆栈。但我发现实际将数据保存到 Redux 存储中的速度会变慢。

使用 ImmutableJs 是无关紧要的。我已经创建了使用和不使用这个框架的 POC,并且性能没有改变。

以下代码是我的SearchReducer

const searchReducer = (state = fromJS(defaultState), action) => {
  switch(action.type) {
    case SEARCHMUSICIAN:      
      const { searchTerm, results } = action.payload;

      return state.set('searchTerm', searchTerm)
                  .set('foundMusicians', fromJS(results));

    default:
      return state;
  }
};
Run Code Online (Sandbox Code Playgroud)

什么可以解释经济放缓?对于更大的集合或同时处理大量数据,Redux 实际上会很慢吗?我是否缺少可以提高 Redux 性能的标志或配置?

没有 Immutable 的性能示例 Immutable 的性能示例

Rec*_*ipe 2

我想我们现在已经解决了。显然 Redux 对于大数组来说非常慢。我已将分派的有效负载转换为对象,现在保存到存储的延迟从 2-3 秒变为 30-50 毫秒。

我的猜测是,当使用较大的数组时,Redux 在内部优化方面遇到了麻烦。当数组大小增加时,保存到存储的延迟也会呈指数增长。当使用对象并增加属性或键的数量时,也不会发生这种情况。