R data.table 大小和内存限制

R data.table Size and Memory Limits

我有一个 15.4GB 的 R data.table 对象,其中包含 2900 万条记录和 135 个变量。我的系统和 R 信息如下:

Windows 7 x64 on a x86_64 machine with 16GB RAM."R version 3.1.1 (2014-07-10)" on "x86_64-w64-mingw32" 

我收到以下内存分配错误(见图)

我的内存限制设置如下:

#memory.limit(size=7000000)
#Change memory.limit to 40GB when using ff library
memory.limit(size=40000)

我的问题如下:

  1. 我应该将内存限制更改为 7 TB
  2. 将文件分成块并执行该过程?
  3. 还有其他建议吗?

您可以尝试使用 ff 包。它适用于磁盘数据。

尝试分析您的代码以确定哪些语句导致 "waste of RAM":

# install.packages("pryr")
library(pryr) # for memory debugging

memory.size(max = TRUE) # print max memory used so far (works only with MS Windows!)
mem_used()
gc(verbose=TRUE) # show internal memory stuff (see help for more)

# start profiling your code
Rprof( pfile <- "rprof.log", memory.profiling=TRUE) # uncomment to profile the memory consumption

# !!! Your code goes here

# Print memory statistics within your code whereever you think it is sensible
memory.size(max = TRUE)
mem_used()
gc(verbose=TRUE)

# stop profiling your code
Rprof(NULL)
summaryRprof(pfile,memory="both") # show the memory consumption profile

然后评估内存消耗配置文件...

由于您的代码因 "out of memory" 异常而停止,您应该将输入数据减少到使您的代码可用的数量,并将此输入用于内存分析...