有没有办法在Redux中"提交"状态来释放内存?

Cri*_*u83 5 real-time 2d-games redux

我正在进行实时多人游戏,我在服务器和客户端上使用Redux来存储应用程序的状态.

但是,发送到商店的操作量明显高于通常的应用程序,因为我的游戏是实时的.我怀疑这就是Redux使用大量内存的原因.

根据我的理解,Redux将所有分配到存储器中的操作存储在内存中,以便能够进行" 时间旅行 ".我还注意到Redux DevTools允许你提交状态.

我想做的是提交应用程序,例如每10秒钟一次以节省内存.无论如何我都不需要在我的应用程序中返回超过10秒,因此即使出于调试目的,也不必存储所有操作.

Redux是否支持此功能?如果没有,有没有办法实现这种行为?

先感谢您!

mar*_*son 7

请注意,虽然Redux DevTools存储了启用时间旅行调试功能的操作历史记录,但Redux本身并没有 - 它只保留对当前状态的引用.由于呈现操作列表和存储内容,DevTools还有一些额外的开销.

除此之外:是什么让你说Redux"使用大量内存"?Redux使用的唯一内存是表示存储状态所需的任何内容.除非你有一些实际显示内存问题的特定基准测试,否则我不认为这是一个有意义的问题.

  • 这个答案是对的.Redux不会保留旧状态,但DevTools会一直执行,直到你"提交". (5认同)
  • 那么,您所说的是Redux仅将当前状态存储在内存中,没有别的吗?如果是这样,那是个好消息。:) (2认同)
  • 除非您仍然在生产*或*中运行Redux开发工具,否则您将在代码中引用旧版本的状态.虽然*redux*不会保持旧状态,但其他事情可能会发生. (2认同)