我对以下几点感到有些困惑:我在32位Windows上运行R。我的理解是我应该能够分配高达2GB的空间。
我读了help("Memory")
并使用标记RGui.exe --max-mem-size=1000M
启动了我的R会话。然后在R中确认了这一点:
> memory.limit()
[1] 1000
但是当我运行特定操作时,我收到一条错误消息,上面写着“无法分配大小为512MB的对象”。
我做错了吗?
答案 0 :(得分:4)
错误消息并不意味着您有512MB的可用内存。你仍然有1000MB的限制,但至少使用了488,对于某些操作,R需要512MB,这是不可用的,所以它不能分配一些对象。
如果您跟踪R进程使用的内存(例如使用Process Explorer),那么您将看到R达到1000MB并显示您的消息。
答案 1 :(得分:2)
尝试添加标记--max-mem-size=1000M
另请注意,在32位版本中,可用的可用内存可能不足,但没有足够大的连续地址空间块可用于映射它。