我正在使用“mem.limits”来限制 R 进程的内存限制。例如:
mem.limits(500000, 20000000)
gc() #see limits
x <- rnorm(1e8); #should fail
这仍然可以正常工作,但是从 R 2.14 开始出现警告消息:
警告消息:不推荐使用“mem.limits”。请改用“gc”。查看帮助(“已弃用”)
现在我不知道该怎么办。垃圾收集与设置内存限制有何关系?
在 R 2.14.x 中,它们已被弃用但仍然有效:
> R.version.string
[1] "R version 2.14.0 (2011-10-31)"
> mem.limits(500000, 20000000)
nsize vsize
5e+05 2e+07
Warning message:
'mem.limits' is deprecated.
Use 'gc' instead.
See help("Deprecated")
> gc() #see limits
used (Mb) gc trigger (Mb) limit (Mb) max used (Mb)
Ncells 170754 9.2 350000 18.7 26.8 350000 18.7
Vcells 272683 2.1 905753 7.0 19.1 851886 6.5
> x <- rnorm(1e8); #should fail
Error: vector memory exhausted (limit reached?)
在 R-devel 中,所有限制都已失效。该功能已被删除,没有替换。有关详细信息,请参阅 R 2.14.0 的新闻和 PR#14795。