【发布时间】:2014-06-18 10:30:31
【问题描述】:
我有一个地图矢量,如下所示,尽管每个数据集中可能有多达 100 个地图:
data({ a:a b:"2" c:t}{ a:b b:"0" c:t}{ a:c b:"-4" c:t}{ a:d b:"100" c:t}{ a:e b:"50" c:t})
我需要产生 :b 的总和
values(map :b data)
sum(reduce + (map read-string values)
这给出了预期的结果,但计算时间很长,大约每秒 1/10。我正在为数十万个数据集执行此操作,因此执行此操作会占用大量处理时间。
任何人都可以建议一种更有效/更快的方法吗?
谢谢
【问题讨论】:
-
请给出真正的 clojure 代码,而不是这个伪代码。我们可以接受。
-
那是真正的clojure代码...
-
为什么不将 int 存储为 int 而不是 string?性能不仅仅来自算法,它是结构+算法的结合
-
@redhands,不,不是!我试过了,我得到了一堆错误。不过,说真的,您最好在问题中提供重要信息。就像事实一样,您使用的是旧版本的 clojure(哪个?)。
-
@Ankur,谢谢我尝试解析源数据然后运行计算,但性能仍然没有真正的提高