mem.limits和gc

时间:2012-02-06 04:54:06

标签: r cran

我使用'mem.limits'来限制R进程的内存限制。 E.g:

mem.limits(500000, 20000000)
gc() #see limits
x <- rnorm(1e8); #should fail

这仍然可以正常工作,但是因为R 2.14有一条警告信息:

  

警告消息:不推荐使用'mem.limits'。请改用“gc”。看到   帮助( “已过时”)

现在我不知道该如何处理。垃圾收集与设置内存限制有什么关系?

1 个答案:

答案 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的新闻。