我使用包 xlsx 和函数 read.xlsx2() 将一些大型 xlsx 文件读入 R 中的 data.frame。这些文件大约有 10.000 行和 140 列。我将堆增加到 2 GB,因为该包使用 rJava 包来读取 xlsx 文件。问题是,在我读取了一个文件然后继续工作之后,R 仍在使用内存。我经常需要读取几个文件,并且在读取了两个 xlsx 文件后,我的内存再次耗尽(java.lang.OutOfMemory. ..)。读取文件后如何清除内存?经过大量谷歌搜索后,我相信这是因为 JVM 是通过 rJava 初始化的。如果我重新启动 R,内存将被清除(并通过保存图像来保留数据)。
我对Java一无所知,所以我希望有人可以帮助我。
编辑:我使用 R 3.0.0 64 位和 java 64 位以及带有 8 GB 内存的 Windows 7。只是为了澄清..如果我保存工作区并重新启动R,那么数据的内存使用情况看起来很正常。我认为(但我不确定)当解压 xlsx 文件时,内存问题就开始了。我知道我仍然可以增加堆大小,但我想限制内存使用量,所以我不需要在所有计算机上安装额外的内存。我也使用了 xlConnect 包,这里的内存问题是一样的。
/肯尼斯