我使用'mem.limits'来限制R进程的内存限制。 E.g:
mem.limits(500000, 20000000)
gc() #see limits
x <- rnorm(1e8); #should fail
这仍然可以正常工作,但是因为R 2.14有一条警告信息:
警告消息:不推荐使用'mem.limits'。请改用“gc”。看到 帮助( “已过时”)
现在我不知道该如何处理。垃圾收集与设置内存限制有什么关系?
答案 0 :(得分:3)
在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的新闻。