2012-02-06 2 views
1

'mem.limits'를 사용하여 R 프로세스의 메모리 제한을 제한하고 있습니다. 예컨대 :mem.limits and gc

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

이 여전히 경고 메시지가 그러나 R 2.14 이후, 잘 작동 :

경고 메시지 : 'mem.limits'가되지 않습니다. 대신 'gc'를 사용하십시오. 도움말 ("더 이상 사용되지 않음")

이제 어떻게해야할지 모르겠습니다. 가비지 수집은 메모리 제한 설정과 관련이 있습니까?

답변

3

은 R의 2.14.x에서 그들은되지하지만 여전히 기능하고 있습니다 : R-의 devel

> 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 2.14.0 및 PR # 14795에 대한 NEWS를 참조하십시오.

+0

Hmz. 파머. 이것은 매우 강력한 기능이었습니다. – Jeroen

+0

이 기능을 R 패키지에 넣을 수 있습니까, 아니면 기본 R을 통해서만 제공 할 수 있습니까? – Jeroen

+1

메모리 할당 자에 넣어야하기 때문에 핵심 R로만 제공 될 수 있습니다. R-devel에 대해 불평하고 불만을 토로하는 사람은이 문제에 괴로워하는 사람이 아닙니다 (PR 참조). –