我是无意中发现的
因为每次调用都会引发quote?
以及作为谓词使用的集合
#{separator quote \return \newline}
不是编译时的常量表达式,对于每个单元格,最终都会调用clojure.lang.RT.set
。
对于如
(def xs (vec (for [_ (range 1000)]
(mapv identity (range 10)))))
它最终会消耗大约50%的CPU
可以在write-csv
内部将其关闭之前将集合绑定到局部变量中轻松避免
如果编译器能检测到这一点,那会很好。
谢谢
Ben