2024年Clojure状态调查!中分享你的想法。

欢迎!请参阅关于页面以了解有关如何操作的更多信息。

0
Clojure
重新标记

我是无意中发现的
因为每次调用都会引发quote?以及作为谓词使用的集合
#{separator quote \return \newline}
不是编译时的常量表达式,对于每个单元格,最终都会调用clojure.lang.RT.set

对于如

  (def xs (vec (for [_ (range 1000)]
                 (mapv identity (range 10)))))

它最终会消耗大约50%的CPU

可以在write-csv内部将其关闭之前将集合绑定到局部变量中轻松避免

如果编译器能检测到这一点,那会很好。

谢谢
Ben

1个答案

+1

将有关编译器改进的想法记录在https://clojure.atlassian.net/browse/CLJ-2702上。

在data.csv中进行了更改,并作为1.0.1版本发布。

在何种场景下你会抽取出来?
相关的链接:[DCSV-21](https://clojure.atlassian.net/browse/DCSV-21)
...