大型 JS 应用程序中的 Redux 性能
Redux performance in a large scale JS app
我最近开始研究 redux,几个小时后我想到了关于 redux 在大型 web 应用程序中的性能问题。
我的问题是,由于 redux 会随着时间的推移维护商店的先前状态,假设应用程序足够大并且随着时间的推移有大量的状态更改,它不会降低应用程序的性能,因为随着时间的推移增加内存消耗以维持所有以前的状态?
仅供参考:我正在考虑基于 java 垃圾收集的背景并在一段时间后释放未使用的内存。
假设您使用不可变数据结构,例如 immutable.js 提供的数据结构,在添加或更新现有数据结构时,除了跟踪引用之外,记住以前的状态没有额外成本。这是使用不可变数据结构的一大优势。当然,当状态更改包括用其他东西替换完整状态时,这些优势就会减弱。
就是说,您 不必 来跟踪以前的状态,使用不可变数据结构更容易、更有效。
此外,Redux 默认情况下不会记住以前的状态,这仅在 redux devtools 中使用,它提供了您似乎想要的 "time travel" 功能。这在开发过程中非常方便。
我最近开始研究 redux,几个小时后我想到了关于 redux 在大型 web 应用程序中的性能问题。
我的问题是,由于 redux 会随着时间的推移维护商店的先前状态,假设应用程序足够大并且随着时间的推移有大量的状态更改,它不会降低应用程序的性能,因为随着时间的推移增加内存消耗以维持所有以前的状态?
仅供参考:我正在考虑基于 java 垃圾收集的背景并在一段时间后释放未使用的内存。
假设您使用不可变数据结构,例如 immutable.js 提供的数据结构,在添加或更新现有数据结构时,除了跟踪引用之外,记住以前的状态没有额外成本。这是使用不可变数据结构的一大优势。当然,当状态更改包括用其他东西替换完整状态时,这些优势就会减弱。
就是说,您 不必 来跟踪以前的状态,使用不可变数据结构更容易、更有效。
此外,Redux 默认情况下不会记住以前的状态,这仅在 redux devtools 中使用,它提供了您似乎想要的 "time travel" 功能。这在开发过程中非常方便。