Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Data structures 收集分析数据的更好想法/数据结构_Data Structures_Clojure - Fatal编程技术网

Data structures 收集分析数据的更好想法/数据结构

Data structures 收集分析数据的更好想法/数据结构,data-structures,clojure,Data Structures,Clojure,我正在收集分析数据。我使用的主地图包含许多其他嵌套地图 考虑到地图是不可变的,将分配许多新地图。(是的,这在Clojure中很有效)。 我使用的基本操作是updatein,非常方便地为给定路径更新值或为不存在的值创建绑定 一旦我到达一个特定点,我将把数据结构保存到数据库中 在Clojure中更有效地收集这些数据的更好方法是什么?瞬态数据结构?与所有优化一样,首先测量,如果映射更新是一个瓶颈,那么切换到瞬态映射是一个相当不具侵入性的代码更改。如果您发现GC开销是真正的罪魁祸首,就像持久性数据结构经

我正在收集分析数据。我使用的主地图包含许多其他嵌套地图

考虑到地图是不可变的,将分配许多新地图。(是的,这在Clojure中很有效)。
我使用的基本操作是updatein,非常方便地为给定路径更新值或为不存在的值创建绑定

一旦我到达一个特定点,我将把数据结构保存到数据库中


在Clojure中更有效地收集这些数据的更好方法是什么?瞬态数据结构?

与所有优化一样,首先测量,如果映射更新是一个瓶颈,那么切换到瞬态映射是一个相当不具侵入性的代码更改。如果您发现GC开销是真正的罪魁祸首,就像持久性数据结构经常发生的那样,并且瞬态没有足够的帮助,那么将数据收集到一个列表中,并将其批量添加到一个临时映射中,该映射被持久化,并最终保存到数据库中,这可能是一个更有效的方法,尽管变化更大。添加到列表会产生很少的GC开销,因为与添加到映射不同,旧头不需要丢弃,也不需要GCd