我将 Scala 与 Lift-Json 一起使用并且工作正常。
当我使用虚拟数据进行性能检查时,我得到的不同数字意味着无法比较。
这是我的性能检查
Data in Rows Weight ForRead (ms) Parse (ms)
10000 468.9 KB 55 441
20000 948.9 kb 96 544
30000 1.4 MB 97 563
**40000 1.9 MB 127 908**
50000 2.4 MB 90 990
100000 4.8 mb 115 1500
当我每次使用 40k 行虚拟数据时,它显示 127-140 毫秒来读取数据,但如果我使用 50K 行,它会下降到 85-90 毫秒。
请检查我的代码一次 - 在这里
implicit val formats = net.liftweb.json.DefaultFormats
val map = {
val mb = new scala.collection.mutable.HashMap[String, Any]() with scala.collection.mutable.SynchronizedMap[String, Any]
(1 to 40000).foreach { i =>
mb += "dummy%s".format(i) -> List("cat1", "hash1", 100, (System.currentTimeMillis()/1000).toInt)
}
mb.toMap
}
//val json1 = map.toString
val json = Extraction.decompose(map)
val jsonStrOut = Printer.pretty(JsonAST.render(json))
val fileName = "foo3.txt"
val fw = new FileWriter(fileName)
fw.write(jsonStrOut)
fw.close()
val t1 = System.currentTimeMillis()
val br : BufferedReader = new BufferedReader(new FileReader(fileName));
val sb:StringBuilder = new StringBuilder();
var line = br.readLine();
while (line != null) {
sb.append(line);
sb.append("\n");
line = br.readLine();
}
val content = sb.toString();
br.close()
println(System.currentTimeMillis() - t1)
val obj = parse(content).asInstanceOf[JObject].values
println(System.currentTimeMillis() - t1)
println(obj("dummy4"))
println(System.currentTimeMillis() - t1)
请提供建议,为什么它会这样显示。
有时系统性能也会显示对性能时间的影响,我认为也是..但同样显示