简化的情况:
我正在开发一个实时应用程序,该应用程序需要将大约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性能的标志或配置?
答案 0 :(得分:0)
我认为我们现在已解决此问题。 显然,大型阵列的Redux速度非常慢。 我已将调度的有效负载转换为对象,现在保存到存储的延迟从2-3秒变为30-50毫秒。
我的猜测是,在使用更大的数组时,Redux在内部优化方面存在麻烦。 当阵列大小增加时,保存到存储的延迟也会成倍增加。使用对象并增加属性或键的数量时也不会发生这种情况。