【发布时间】:2015-02-20 07:56:01
【问题描述】:
我在我的程序中使用 HashSet,随着集合的增长,我收到错误“线程中的异常”main“java.lang.OutOfMemoryError: Java heap space”。我有 32 位操作系统和 4Gb 内存。 JVM 无法在 eclpse 中分配超过 1500Mb 的 VM 参数。在这种情况下该怎么办?
【问题讨论】:
-
显示一些代码,它会有所帮助。一个 HashSet 不需要 1.5GB。
-
请提供一些代码。您使用的初始容量和负载系数是多少?
-
我正在创建一个以 hashSet 作为值的大型 hashMap,并且 hashMap 和 hashSet 都在增长。我在其中映射了大约 (45000*45000) 个整数
-
45000*45000 = 202500000 乘以 4 是 8100000000 或 7.5437128543853759765625 Gb,加上对象开销,加上数组开销。它不适合 4Gb 的 RAM。