gpt4 book ai didi

json - 为什么这个 Scala 代码很慢?

转载 作者:行者123 更新时间:2023-12-04 10:28:17 26 4
gpt4 key购买 nike

我正在运行以下 Scala 代码:

import scala.util.parsing.json._
import scala.io._

object Main {
def jsonStringMap(str: String) =
JSON.parseFull(str) match {
case Some(m: Map[_,_]) => m collect {
// If this doesn't match, we'll just ignore the value
case (k: String, v: String) => (k,v)
} toMap
case _ => Map[String,String]()
}

def main(args: Array[String]) {
val fh = Source.fromFile("listings.txt")
try {
fh.getLines map(jsonStringMap) foreach { v => println(v) }
} finally {
fh.close
}
}
}

在我的机器上,来自 http://sortable.com/blog/coding-challenge/ 的文件需要大约 3 分钟的时间。 .我编写的等效 Haskell 和 Ruby 程序不到 4 秒。我究竟做错了什么?

我在没有 map(jsonStringMap) 的情况下尝试了相同的代码,它非常快,那么 JSON 解析器真的很慢吗?

默认的 JSON 解析器似乎确实很慢,但是我尝试了 https://github.com/stevej/scala-json虽然这将它缩短到 35 秒,但仍然比 Ruby 慢得多。

我现在正在使用 https://github.com/codahale/jerkson这是更快!我的程序现在在我的数据上运行只需要 6 秒,只比 Ruby 慢 3 秒,这可能只是 JVM 启动。

最佳答案

快速查看 scala-user 文件似乎表明没有人在使用 scala 标准库中的 JSON 解析器进行认真的工作。

http://groups.google.com/group/scala-user/msg/fba208f2d3c08936

似乎在 Scala 不太受关注并且没有今天的期望时,解析器最终出现在标准库中。

关于json - 为什么这个 Scala 代码很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9406272/

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