【发布时间】:2011-03-21 05:17:48
【问题描述】:
我在一些相对较大的数据上使用 R,并且遇到了一些内存问题。这是在 Linux 上。我的数据比系统上的可用内存少得多,因此这是管理瞬态分配的问题。
当我运行 gc() 时,我得到以下列表
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 2147186 114.7 3215540 171.8 2945794 157.4
Vcells 251427223 1918.3 592488509 4520.4 592482377 4520.3
然而 R 似乎在常驻内存中分配了 4gb,在交换中分配了 2gb。我假设这是操作系统分配的内存,R 的内存管理系统将根据需要分配和 GC。但是,假设我不想让 R OS 分配超过 4gb,以防止交换抖动。我总是可以使用 ulimit,但它只会崩溃,而不是在减少的空间内工作并更频繁地进行 GC。有没有办法为 gc 触发器指定任意最大值并确保 R 永远不会分配更多?或者我还能做些什么来管理内存使用?
【问题讨论】:
标签: memory r garbage-collection