首先,需要注意的是,这两个变量非常不同,gc
不会删除您仍在使用的any个变量——它只会为您不再能够访问的变量释放内存(无论是使用rm()
删除的变量,还是在此后返回的函数中创建的变量).运行gc()
永远不会让你丢失变量.
不过,你是否应该在打rm()
之后再打gc()
,这个问题很好.gc的documentation位专家指出:
gc调用会导致垃圾收集发生.这也将在没有用户干预的情况下自动进行,调用gc的主要目的是报告内存使用情况.
然而,在删除大型对象后调用gc可能会很有用,因为这可能会提示R将内存返回到操作系统.
所以答案是,拨打gc()
是很好的(至少不会造成伤害),即使它可能会被触发(如果不是立即触发,那么很快就会触发).