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)
我的问题如下:
- 我应该将内存限制更改为 7 TB
- 将文件分成块并执行该过程?
- 还有其他建议吗?
您可以尝试使用 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" 异常而停止,您应该将输入数据减少到使您的代码可用的数量,并将此输入用于内存分析...
我有一个 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)
我的问题如下:
- 我应该将内存限制更改为 7 TB
- 将文件分成块并执行该过程?
- 还有其他建议吗?
您可以尝试使用 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" 异常而停止,您应该将输入数据减少到使您的代码可用的数量,并将此输入用于内存分析...