为什么Scala并行集合有时会导致OutOfMemoryError?
发布时间:2020-12-16 18:44:51 所属栏目:安全 来源:网络整理
导读:大约需要1秒钟 (1 to 1000000).map(_+3) 虽然这给出了java.lang.OutOfMemoryError:Java堆空间 (1 to 1000000).par.map(_+3) 编辑: 我有标准的scala 2.9.2配置.我在scala提示符下键入此内容.在bash中我可以看到[-n“$JAVA_OPTS”] || JAVA_OPTS =“ – Xmx2
大约需要1秒钟
(1 to 1000000).map(_+3) 虽然这给出了java.lang.OutOfMemoryError:Java堆空间 (1 to 1000000).par.map(_+3) 编辑: 我有标准的scala 2.9.2配置.我在scala提示符下键入此内容.在bash中我可以看到[-n“$JAVA_OPTS”] || JAVA_OPTS =“ – Xmx256M -Xms32M” 我没有在我的环境中设置JAVA_OPTS. 100万个整数= 8MB, 解决方法
它似乎肯定与JVM内存选项和存储Parralel集合所需的内存有关.例如:
scala> (1 to 1000000).par.map(_+3) 第三次尝试评估它时,最终会出现OutOfMemoryError scala> (1 to 1000000).par.map(_+3).seq 从未失败过.问题不在于计算它是Parrallel集合的存储. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |