加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

为什么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,
创建列表两次= 16MB

解决方法

它似乎肯定与JVM内存选项和存储Parralel集合所需的内存有关.例如:

scala> (1 to 1000000).par.map(_+3)

第三次尝试评估它时,最终会出现OutOfMemoryError

scala> (1 to 1000000).par.map(_+3).seq

从未失败过.问题不在于计算它是Parrallel集合的存储.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读