我正在使用提供类似remoteConnection.getObjects()
的方法的API来获取远程服务器中的对象列表。该列表有时很大并导致Java堆空间OutOfMemoryError。有没有办法将这些对象直接转储到文件而不是将它们加载到内存中?
答案 0 :(得分:5)
根据你的描述,不幸的是答案是没有你不能 - “内存不足”实际上并不意味着你的物理内存耗尽,这意味着你的虚拟地址空间太完整/碎片化,不再分配。
简而言之 - 内存到磁盘的分页位将无济于事,因为物理内存不是瓶颈,限制因素只是解决内存的能力。 (操作系统已经可以无缝地将内存分页到磁盘上了。)
您的选择(我可以看到)是:
答案 1 :(得分:3)
遗憾的是,如果返回该数据量的API,则无法做很多事情。 您可以使用-Xmx jvm arg来增加堆大小吗?