我在具有 30.5 GB RAM 的 Windows Server 2012(64 位)上,在 RStudio 0.98 中运行 R v3.1.2,并且仍然遇到 R 达到内存限制的问题。
我在这里查看了常见问题解答:http: //cran.r-project.org/bin/windows/base/rw-FAQ.html#There-seems-to-be-a-limit-on-the-memory-it-用途_0021
其中指出 64 位实例的内存限制默认为 RAM 总量,并且可以使用 memory.limit() 检查和设置限制。
调用memory.limit()
返回31249
,确认它能够查看和使用所有 30 个演出。
但是,当我对大型数据集(约 10M 行)进行建模调用时:
ctree(as.formula(formula), data=d, control=ctree_control(mincriterion=0.9, minbucket=1000))
我收到以下错误:
'Calloc' could not allocate memory (18446744073673801728 of 8 bytes)
但是查看系统任务管理器我可以看到仍然有超过 25GB 可用,而 R 只使用了 2.3GB。
在 RStudio 之外和 R 中直接运行建模会产生相同的结果,因此 RStudio 不是变量。
我很困惑 - 为什么 R 拒绝使用我所有的内存?