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

时间:2019-01-14 13:49:57

标签: javascript reactjs redux react-redux

简化的情况:

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

应用程序包含一个ReactJs-Redux-ImmutableJs-重新选择techstack。但是我已经确定了将数据实际保存到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;
  }
};

什么可以解释这种放缓? Redux实际上会同时收集大量数据或大量数据,速度变慢吗? 我是否缺少会提高Redux性能的标志或配置?

Performance example without Immutable Performance example with Immutable

1 个答案:

答案 0 :(得分:0)

我认为我们现在已解决此问题。 显然,大型阵列的Redux速度非常慢。 我已将调度的有效负载转换为对象,现在保存到存储的延迟从2-3秒变为30-50毫秒。

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