Ant*_*ico 30 memory garbage-collection memory-management r
我试图让一些代码在RAM少于4GB的计算机上运行.我使用32位版本的R来强制执行内存上限.当我试图运行内存占用命令并且一切都中断时,我正在接近脚本末尾的墙.但内存占用任务本身需要不到4GB.我已经将问题缩小到这样的事实 - 尽管在当前会话中清除了内存中的所有对象--R控制台仍然保持1.9GB的RAM.下面的屏幕截图突出显示了我遇到问题的确切位置:注意内存中没有任何对象,但是任务管理器说这个R的实例拥有1.8578GB的RAM.
如果我清除内存中的所有对象,然后运行gc()它仍然不会清除所有内存(正如您在我的屏幕截图中看到的).
是否有可能以某种方式清除这种记忆?
如果有任何用处,您可以通过运行此脚本将其重现到崩溃点
谢谢!
编辑:在我得到的脚本的末尾
[1] "current designing ./2011/bst.rda"
Error: cannot allocate vector of size 434.7 Mb
In addition: There were 50 or more warnings (use warnings() to see the first 50)
> gc(verbose=T)
Garbage collection 27232 = 15350+4362+7520 (level 2) ...
31.5 Mbytes of cons cells used (49%)
450.6 Mbytes of vectors used (21%)
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 1175911 31.5 2421436 64.7 1770749 47.3
Vcells 59048650 450.6 278146328 2122.1 461815808 3523.4
> rm(list=ls(all=TRUE))
> gc(verbose=T)
Garbage collection 27233 = 15350+4362+7521 (level 2) ...
11.1 Mbytes of cons cells used (21%)
7.1 Mbytes of vectors used (0%)
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 414283 11.1 1937148 51.8 1770749 47.3
Vcells 920035 7.1 222517062 1697.7 461815808 3523.4
>
Run Code Online (Sandbox Code Playgroud)
退出R后内存会被释放吗?
也许您在磁盘中读取了一些数据(存储在临时文件中)而不是加载到 R。所以gc()不会捕获该数据。
或者mem_change(your command here)从一开始就看看是什么导致了记忆的改变。
| 归档时间: |
|
| 查看次数: |
2666 次 |
| 最近记录: |