gpt4 book ai didi

scala - 如何加速 scalaz-stream 文本处理?

转载 作者:行者123 更新时间:2023-12-02 04:49:24 25 4
gpt4 key购买 nike

如何加速以下 scalaz-stream 代码?目前处理 70MB 的文本大约需要 5 分钟,所以我可能做错了什么,因为普通的 scala 等价物需要几秒钟。

(跟进 another question )

  val converter2: Task[Unit] = {
val docSep = "~~~"
io.linesR("myInput.txt")
.flatMap(line => { val words = line.split(" ");
if (words.length==0 || words(0)!=docSep) Process(line)
else Process(docSep, words.tail.mkString(" ")) })
.split(_ == docSep)
.filter(_ != Vector())
.map(lines => lines.head + ": " + lines.tail.mkString(" "))
.intersperse("\n")
.pipe(text.utf8Encode)
.to(io.fileChunkW("correctButSlowOutput.txt"))
.run
}

最佳答案

我认为您可以只使用一种 process1 分块方法来分块。如果您希望在将行合并为输出格式时进行大量并行处理,请确定有序输出是否重要,并使用与合并或发球台相结合的 channel 。这也将使它可重复使用。因为您正在执行非常少量的处理,所以您可能会被开销淹没,因此您必须更加努力地工作以使您的工作单元足够大,以免被淹没。

关于scala - 如何加速 scalaz-stream 文本处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30239621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com