我對以下幾點感到困惑:我在32位Windows上運行R.我的理解是,我應該能夠分配高達2GB。在R中分配更大的對象?
雖然我讀了help("Memory")
,並啓動了我的R會話,標記爲RGui.exe --max-mem-size=1000M
。然後R內證實了這一點:
> memory.limit()
[1] 1000
但是當我運行一個特定的操作,我得到它說類似「無法分配大小512MB的對象」的錯誤消息。
我做錯了什麼?
我對以下幾點感到困惑:我在32位Windows上運行R.我的理解是,我應該能夠分配高達2GB。在R中分配更大的對象?
雖然我讀了help("Memory")
,並啓動了我的R會話,標記爲RGui.exe --max-mem-size=1000M
。然後R內證實了這一點:
> memory.limit()
[1] 1000
但是當我運行一個特定的操作,我得到它說類似「無法分配大小512MB的對象」的錯誤消息。
我做錯了什麼?
錯誤信息並不意味着您有512MB的可用內存。您仍然有1000MB的限制,但至少使用了488個,對於某些操作,R需要512MB不可用,因此它不能分配某個對象。
如果您跟蹤R進程使用的內存(例如Process Explorer),那麼您將看到R如何達到1000MB並顯示您的消息。
嘗試還添加標誌--max-mem-size=1000M
還要注意的是在32位的構建有可能是足夠的可用內存,但沒有一個足夠大的連續塊的地址空間分成其上映射。
對不起@ gd047!我的意思是--max-mem-size ... – griffin 2010-09-16 18:41:29