我的应用程序逐行处理一个可能很大的文本文件,我的代码目前是:
(with-open [r (clojure.java.io/reader "large_text_file")]
(doall
(map #(process %) (line-seq r)))
在我的代码中,已经处理过的行会保留在内存中吗?如果是这样,我该如何避免?
一般情况下,消耗的惰性序列元素是否保留在内存中?
谢谢!
最佳答案
这取决于:正常的 GC 规则适用,如讨论的那样 elsewhere on StackOverflow in great detail .
因此,请确保您只在元素流经时引用元素,而不是保持序列的头部,这样您应该做得很好。
关于java - Clojure - 消耗的惰性序列元素是否保留在内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10958254/