2017-06-29 45 views
0

在處理修改大型對象(5GB)時,在裝有30GB RAM的Windows計算機上,有幾次我一直在收回錯誤 Reached total allocation of 31249Mb: see help(memory.size)。然而這個過程似乎完成了,也就是我得到了一個文件,其中看起來像正確的值。仔細檢查大文件中的每一位,以便正確返回,並將其與正確的部分進行比較是非常耗時的,但是當我完成它時,看起來返回的對象與我的期望是正確的。「達到31249Mb的總分配的風險是什麼:請參閱help(memory.size)」

我可以從這個錯誤中得到什麼風險/副作用?我應該檢查什麼?該流程是否會自動恢復,因爲我收回了我期望的回報,還是錯誤會更加微妙?我的整個分析過程是使用tidyverse編寫的,這是否意味着我可以依靠Hadley等人的良好錯誤處理,並且這就是爲什麼我的過程是警告,還要完成?

N.B.我沒有在MWE上加入任何嘗試,因爲每臺機器都有不同的內存限制,儘管如果有任何建議,我們很樂意在這種過程中顯示MWE。

回答

0

使用memory.limit(x)其中x是給它的內存的MB數量。

見鏈接瞭解詳情: Increasing (or decreasing) the memory available to R processes

+0

謝謝,但我知道這一點。我的問題是具體關於錯誤檢查,如果發生此錯誤,但返回一個明顯正確處理的對象。此外,我的記憶限制似乎正確設置:30Gb約== 31249Mb – DaveRGP

+1

索裏關於這一點,沒有看到問題的第二部分。有些函數在讀取和使用它們時會大大擴展數據,這就是我在這裏發生的事情。我曾經使用過的最大對象是2.2GB,我沒有遇到這個問題。把這個過程分解成塊而不是錯誤檢查是否合理? – Adam

相關問題