2
我正在收集分析数据。我正在使用包含许多其他嵌套地图的主地图。收集分析数据的更好主意/数据结构
考虑到地图是不可变的,许多新地图将被分配。 (是的,这在Clojure中是有效的)。
我正在使用的基本操作是update-in,非常方便更新给定路径的值或为不存在的值创建绑定。
一旦我达到了某个特定点,我将把该数据结构保存到数据库中。
在Clojure中更有效地收集这些数据会更好吗?一个瞬态数据结构?
我正在收集分析数据。我正在使用包含许多其他嵌套地图的主地图。收集分析数据的更好主意/数据结构
考虑到地图是不可变的,许多新地图将被分配。 (是的,这在Clojure中是有效的)。
我正在使用的基本操作是update-in,非常方便更新给定路径的值或为不存在的值创建绑定。
一旦我达到了某个特定点,我将把该数据结构保存到数据库中。
在Clojure中更有效地收集这些数据会更好吗?一个瞬态数据结构?
与所有的优化一样,首先测量,如果地图更新是瓶颈,那么切换到瞬态地图是一个非常不引人注意的代码更改。如果您发现GC开销是真正的罪魁祸首,因为它通常具有持久的数据结构,并且瞬态没有足够的帮助,那么将数据收集到列表中并批量添加到瞬态映射中,该瞬态映射被持久化并保存到尽管更大的变化,DB最终可能会更有效。添加到列表中会产生非常少的GC开销,因为与添加到映射不同,旧头不需要被丢弃,并且GCd