Redux垃圾回收是如何工作的?

7

Redux的垃圾回收机制是如何工作的?我们都知道redux提倡不可变性。那么过期的状态实例会发生什么? 例如,在我的reducer中,如果我有这样一个case:

...
case 'MY_ACTION':
     return state.set('name', action.name)
... 

现在,如果我触发MY_ACTION动作100次,那么代码将会创建100个新对象。
我的问题是对于不再使用的先前状态对象会发生什么。它们会留给Javascript /浏览器垃圾收集器决定如何处理吗?如果是这样,这不会成为一个性能问题吗?也就是说,那么多过期的“状态”对象会增加Javascript垃圾收集器的负担,从而降低代码的性能吗?

好吧,没有办法从JS代码手动清除内存,也没有window.runGC()方法可以强制垃圾收集器按照您的时间表执行,所以... - nnnnnn
没错。但我相信redux的创造者一定已经考虑到了这一点,并以某种方式处理了它,考虑到这是一个非常明显的问题。 - Nahush Farkande
或许相关: redux性能. - kca
Redux是垃圾,只有那些不了解React Hooks的智力低下者才会使用它。 - myworldbox
1个回答

3

Redux本身是一个简单的状态管理库。垃圾回收相关的任何事情都由Javascript引擎处理。所以,Redux的创建者并没有“考虑到”这一点,因为垃圾回收与Redux库本身无关。

是的,不可变数据处理会产生比直接变异更多的对象,但JS引擎可以很好地处理它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接