为什么使用 reducers 库进行映射/归约的性能比普通的 map/reduce 差?
user=> (time (reduce + (map inc (range 100000000))))
"Elapsed time: 14412.627966 msecs"
5000000050000000
user=> (time (reduce + (r/map inc (range 100000000))))
... (C-c)
user=> (time (r/reduce + (r/map inc (range 100000000))))
....(C-c)
我有两个杀死后两个,因为它需要无限长的时间。这里有什么问题?
编辑: 似乎其他语言也有类似的问题。Scala 似乎只突破了一百万。为什么 Scala 并行集合有时会导致 OutOfMemoryError?. 虽然 clojure reducers 在 100 万时比正常速度快。