2010-09-16 24 views
2

我對以下幾點感到困惑:我在32位Windows上運行R.我的理解是,我應該能夠分配高達2GB。在R中分配更大的對象?

雖然我讀了help("Memory"),並啓動了我的R會話,標記爲RGui.exe --max-mem-size=1000M。然後R內證實了這一點:

> memory.limit() 
[1] 1000 

但是當我運行一個特定的操作,我得到它說類似「無法分配大小512MB的對象」的錯誤消息。

我做錯了什麼?

回答

4

錯誤信息並不意味着您有512MB的可用內存。您仍然有1000MB的限制,但至少使用了488個,對於某些操作,R需要512MB不可用,因此它不能分配某個對象。

如果您跟蹤R進程使用的內存(例如Process Explorer),那麼您將看到R如何達到1000MB並顯示您的消息。

2

嘗試還添加標誌--max-mem-size=1000M

還要注意的是在32位的構建有可能是足夠的可用內存,但沒有一個足夠大的連續塊的地址空間分成其上映射。

+0

對不起@ gd047!我的意思是--max-mem-size ... – griffin 2010-09-16 18:41:29