【发布时间】:2013-01-12 20:46:36
【问题描述】:
我在具有 64 GB RAM 的 Windows 64 位计算机 上运行模拟。内存使用达到 55%,在完成模拟运行后,我删除了工作空间中的所有对象 rm(list=ls()),然后是 double gc()。
我以为这会为下一次模拟运行释放足够的内存,但实际上内存使用仅下降了 1%。咨询了很多不同的论坛我找不到满意的解释,只有模糊的cmets,例如:
“根据您的操作系统,释放的内存可能不会返回给操作系统,而是保留在进程空间中。”
我想查找以下信息:
- 1) 哪个操作系统以及在何种条件下释放的内存不会返回给操作系统,以及
- 2) 除了关闭 R 并重新启动它以进行下一次模拟运行之外,是否还有其他补救措施?
【问题讨论】:
-
如果不关闭R,下次运行会不会内存不足?
-
你以后真的会耗尽内存吗?
-
我还不能检查。我对当前的项目非常着急,我不想面对模拟卡住的风险(他们需要六小时到两天)。
-
这就是为什么在执行整个模拟之前在一个不错的小数据集上测试
gc或rm...的行为。
标签: r garbage-collection