我R
在 Ubuntu 64 位(14.04)和软件包上使用(3.0.2 版)read.xlsx
来读取几个 xlsx 表。我这样做:
options(java.parameters = "-Xmx4g" )
require(xlsx)
d1 = read.xlsx2(file, sheetName=sheet.1)
d2 = read.xlsx2(file, sheetName=sheet.2)
d3 = read.xlsx2(file, sheetName=sheet.3)
这主要工作,但R
需要更多广告更多内存,并且当它开始交换时,它不会在适当的时间终止。我认为问题在于函数终止后用于读取 xlsx 文件的内存没有被释放,因为即使我删除了所有数据(remove(d1)
,...),内存仍然被占用。我试图找到使用read.xlsx
使用的任何旧对象,ls()
但没有临时对象......
一个可行的解决方案是读取文件直到内存已满。然后保存工作区,关闭R
,重新打开R
并加载保存的工作区。但这肯定不是最好的解决方案!因此,实际的问题是:如何read.xlsx
在内存完成后强制释放内存(并杀死子进程)?