如何清理R内存而无需重新启动R会话

时间:2018-11-16 08:15:05

标签: r memory garbage-collection

我知道有很多类似的问题都得到了公认的答案(herehere甚至是this),但是到目前为止,我仍然没有找到关于释放一些内存的明确答案空间,而无需重新启动R会话。

我知道,可以保存他的工作空间,重新启动R并重新加载工作空间,但是:

  1. 我不确定,但是这样做您必须正确加载所有库了吗?
  2. 如果您的工作空间很大,则可能需要一些时间,如果我经常这样做,我不想每次都浪费时间。
  3. 如果我删除了一个大对象,这不仅不是正常的行为,实际上是释放该对象所占用的内存吗?

似乎并非如此。即使删除了工作区中最大对象的一半(由于this great answer)并运行了gc()之后,top仍然为我提供了完全相同的内存使用百分比。

Here在评论中说:

  

R的垃圾回收将RAM标记为可用。取决于您的操作系统   回收

听起来不错,但不确定这是否真的发生。即使在toprm()之后,甚至在os中启动新的其他进程之后,甚至在2h,10h或3天之后,gc()仍向我显示R使用的内存量相同。

This评论表明它必须与加载的库和图形设备一起查看,但是为什么呢?以及我该如何解决?

如果我rm()一个3GB对象,然后使用gc()释放内存,那么R仍然有可能使用相同百分比的内存吗?

0 个答案:

没有答案