Clojure缓慢写入文件

问题描述 投票:3回答:1

我们有一个Clojure应用程序,它使用一个数据集(约3000行),并使用spit将其写入本地文件。它在编写它的机器上运行良好,但是在拉下git代码的每台其他机器上,编写步骤都非常缓慢。在原始计算机上,此过程需要几秒钟,而在其他计算机上,该过程可能需要十分钟以上。

有问题的两台主要机器(开发人员的机器和我的机器)都是具有相同规格和配置的Manjaro Arch Linux系统。我们都从同一个Git源中提取数据,并且都提取相同的数据。

我们已经确认代码仍然可以在我的机器上运行,因为如果我尝试只写数据集的前十行(即使仍然需要将近一分钟的时间),它仍然可以完成。

在两台计算机上的处理过程中几乎都未触及CPU和RAM,并且输出文件大小小于MB。

如果将Java.io库与clojure.data.csv或dk.ative.docjure.spreadsheet一起使用,而不是随地吐痰,则会遇到相同的问题。

抽象的数据形状是:

[["Name" "Price"]
 ["Foo Widget" 100]
 ["Bar Widget" 200]]

(但当然大于3000行)

感谢您的任何帮助!

java clojure io leiningen arch
1个回答
0
投票

好,因此,当我们在研究代码示例以进行共享时,我们收到了来自其他来源的解决问题的一些建议。

  1. 我们将阅读器更改为使用输入流,而不是读取整个文件
  2. 我们按照@Reut Sharabani的建议将作者包裹在doall中>
  3. 基本问题似乎是每台计算机如何处理懒惰

感谢大家的回应!

© www.soinside.com 2019 - 2024. All rights reserved.