我的问题在于对大数据集(大约 2500 万行和 10 列,即大约 1GB 数据)的简单计算。我的系统是:
32bits/Windows7/4Gb Ram/R Studio 0.96, R 2.15.2
我可以使用 BigMemory 包来引用我的数据库。并在我的数据库上使用函数。我也可以用 ff 包、filehash 等来做到这一点。
问题是在计算简单计算(作为唯一值、平均值等)时,我遇到了典型的问题
“无法分配向量大小 n mb”
,其中 n 可以小至 70mb - 95mb 等。
我知道到目前为止提供的所有(我认为)解决方案:
increase RAM.
launch R with inline code "--max-mem-size XXXX",
use memory.limit() and memory-size() commands,
use rm() and gc(),
work on 64bit,
close other programs, free memory, reboot,
use packages bigmemory, ff, filehash, sql, etc etc.
improve your data, use integers, shorts, etc. ...
check memory usage of intermediate calculations, ...
etc.
所有这些都经过测试,完成,(除了移动到另一个系统/机器,显然)等。
但是我仍然得到那些“无法分配向量大小 n mb”,例如,其中 n 约为 90mb,R 或其他程序几乎没有使用内存,所有这些都重新启动,新鲜......我知道区别在空闲内存和来自 Windows 和 R 等的分配之间,但是,
这没有任何意义,因为可用内存超过 3GB。我怀疑原因确实是在 windows32b 下——R 内存管理,但是购买 4GB 的 RAM 或将所有系统切换到 64 位以分配 70mb 似乎几乎是个笑话。
有什么我想念的吗?