假设您已加载大型数据结构(如数据库中的表索引),现在您想要进行更改。
如果我理解正确,您需要根据当前状态(从磁盘加载的内容)创建一个新状态(包括您更改)并将其分配给您拥有的当前标识。
在大型数据结构中这将非常慢,因为运行时需要复制大量内存。有没有实用的替代方案?
答案 0 :(得分:2)
有没有实用的选择?
如果数据库的选择在您的控制之内,您可以查看Datomic,它旨在使用Clojure。据我所知(不过很多,说实话)
要获得这些特征,请使用the peer library, not the client library。
如果我说废话,知识渊博的读者,请告诉我。
答案 1 :(得分:1)
以下是Clojure不可变数据结构的几个很好的概述:
正如评论所说,当你做一些小改动时,他们不会复制整个数据结构。相反," old"和"新"版本共享未发生变化的部分的数据,使得"持久性"数据结构非常有效。