我在16GB內存的計算機上運行一些模擬。首先,我遇到了一些錯誤:R內存問題與memory.limit()
Error: cannot allocate vector of size 6000.1 Mb (the number might be not accurate)
然後我試圖通過分配更多的內存以R:
memory.limit(1E10)
選擇這樣一個大的數字的原因是因爲memory.limit
不能讓我選擇的比我的系統總內存
In memory.size(size) : cannot decrease memory limit: ignored
這樣做了以後少一些,我可以完成我的模擬,但[R前後花了15GB的內存,它停在我從做任何後期ANALY SIS。
我用object.size()
來估計所有生成的變量的總內存使用量,這個變量只花了10GB左右。我無法確定R在剩下的記憶中所佔的位置。所以我的問題是如何合理地分配內存給R而不會爆炸我的機器? 謝謝!
你確定你已經看過所有現有的變量嗎? 'ls(all = TRUE)'只列出你生成的那些?請注意,即使刪除了一個對象,在調用垃圾收集器之前用於存儲該對象的內存也不是空閒的。 R定期執行此操作,但可以使用'gc()'強制收集。 –
我還沒有檢查過我所有內存的內存使用情況。但是,在每次迭代後,我在模擬中都使用了gc()... –
一般來說,您需要大約3倍的對象佔用的內存量。這是因爲複製對象。 –