小编Sim*_*get的帖子

Scala中Set union的性能问题

我刚刚在Scala Set API中遇到了一个奇怪的行为.这是我的功能剥离了与项目其余部分相关的内容

def grade(...): Double = {
  val setA: HashSet = // get from somewhere else
  val setB: HashSet = // get from somewhere else
  if ((setA size) == 0 || (setB size) == 0) return 0
  else return (setA & setB size) / (setA | set B size)
}
Run Code Online (Sandbox Code Playgroud)

这个函数在循环内调用了很多时间,整个循环在4.5秒左右执行.但是当用大小的总和(粗略近似)替换并集的大小时,为了测试并集操作的影响,执行的时间减少到大约0.35秒......

def grade(...): Double = {
  val setA: HashSet = // get from somewhere else
  val setB: HashSet = // get from somewhere else
  if ((setA size) == 0 …
Run Code Online (Sandbox Code Playgroud)

performance union scala set

4
推荐指数
1
解决办法
1013
查看次数

标签 统计

performance ×1

scala ×1

set ×1

union ×1