0

私は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)

そのように表示される理由を提案してください。

システム パフォーマンスもパフォーマンス時間に影響を与えることがあります。

4

1 に答える 1