栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Map读写性能

Map读写性能

def main(args: Array[String]): Unit = {
    val t3 = System.currentTimeMillis()
    val key = "a"
    for (j <- 0 to 100000) {
      var expdata: scala.collection.mutable.Map[String, ArrayBuffer[Double]] = scala.collection.mutable.Map("a" -> ArrayBuffer[Double](1))
      for (i <- 0 to 10000) {
        if (expData.contains(key)) {
          expData(key) += i.toDouble
        } else {
          expData(key) = ArrayBuffer(i.toDouble)
        }
      }
    }
    val t4 = System.currentTimeMillis()
    println("expData 2 time : 执行" + (t4 - t3)/1000 + "秒" )

    val t5 = System.currentTimeMillis()
    val key2 = "a"
    for (j <- 0 to 100000) {
      var expdata: scala.collection.mutable.Map[String, ArrayBuffer[Double]] = scala.collection.mutable.Map("a" -> ArrayBuffer[Double](1))
      for (i <- 0 to 10000) {
        expData.put(key2,expData.getOrElse(key2, ArrayBuffer[Double]()) += i.toDouble)

      }
    }
    val t6 = System.currentTimeMillis()
    println("expData 3 time : 执行" + (t6 - t5)/1000 + "秒" )
  }

如图,更新map数据,分别使用两种方式(expData(key)、put|get)

1. expData(key) += i.toDouble
2. expData.put(key2,expData.getOrElse(key2, ArrayBuffer[Double]()) += i.toDouble)

处理了100000*10000=10亿次

结果如下:

expData(key)的执行32秒,put|get执行139秒

结论,expData(key)的速度是put|get的4倍多

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/679923.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号