私はLift-JsonでScalaを使用し、正常に動作しました。
パフォーマンス チェック用にダミー データを使用してテストしているときに、数値が異なるということは、比較できないことを意味します。
これが私のパフォーマンスチェックです
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
データを読み取るために 127 ~ 140 MS を示すたびに 40k 行のダミー データを使用すると、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)
そのように表示される理由を提案してください。
システム パフォーマンスもパフォーマンス時間に影響を与えることがあります。