【发布时间】:2011-08-03 11:17:42
【问题描述】:
我有两个巨大的(如数百万个条目)集合(HashSet),它们之间有一些(
目前,我正在将一组中的所有项目添加到另一组中:
setOne ++= setTwo
这需要几分钟才能完成(在多次尝试调整成员的 hashCode() 之后)。
任何想法如何加快速度?
【问题讨论】:
-
这些是可变集合,对吧?
-
合并后的集合怎么办?有哪些操作,有多少? (我想你可以采取一种懒惰的方法,如果你会用它做少量的事情,那么根本不用费心合并这些集合 - 只需根据需要对一个或两个集合进行操作)
-
你知道性能是否受内存堆大小的影响吗?有时,当 JVM 用完堆时,性能会下降,因为垃圾收集器会花费所有时间来回收内存。
-
@huynhjl 你的观点是有效的。我最初确实遇到了严重的退化,但通过将享元应用于集合成员来修复它。
-
@Paul:在这种特殊情况下,我只是将集合保存到一个文本文件中,这样就可以了。然而,这个问题的重点是真正找到改进大集合合并的方法......
标签: scala collections scala-collections