我有一个代码,可以从文件中读取大量数据并将其写入 Excel 文件。我面临的问题是,当数据超出堆大小的限制时,它会抛出内存不足异常。我尝试增加堆大小,程序运行正常。但问题是,我的机器上的 RAM 有限,如果我将巨大的空间分配给堆,机器就会变得非常慢。那么,有什么方法可以在处理一定限制的数据后释放内存,这样我就不需要增加堆大小来运行我的代码了?我对这类东西比较陌生,所以请提出一些想法
最佳答案
在这种情况下,您需要重组代码,以便它可以处理小数据 block 。创建一个小缓冲区,将数据读入其中,对其进行处理并将其写入 Excel 文件。然后继续下一次迭代,读入相同的缓冲区。
当然,您使用的 Excel 库需要能够像这样工作,并且不需要一次性写入整个文件。
关于java - 如何在不增加 eclipse 上堆大小的情况下避免内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10444130/