基于不可变数据结构的应用程序不会耗尽内存吗?

时间:2017-05-12 11:29:45

标签: out-of-memory immutability immutable.js ramda.js

不要介意redux或其他东西 - 我只是询问Immutable.JS,Ramda等。

如果通过结构共享创建数据结构的新版本,则意味着每个新版本都需要具有指向先前版本的指针,以便它能够共享任何内容。这再次意味着结构的旧版本不能被垃圾收集,这意味着,在具有状态的应用程序中,此状态将使用单调增加的内存量。如果是这种情况,那么该数据结构在某些时候会使用所有可用内存,如果它一直被修改。

我在这里遗漏了什么吗?我可以看到,对于Web上的许多(大多数)用例(在浏览器中),这不会是一个问题,因为您可能每次只更改结构的一小部分,并且您可能会离开页面或者在使用所有内存之前重新加载它,但对于长时间运行的进程,这应该会产生问题。对? Riiight?

0 个答案:

没有答案