作者f496328mm (為什麼會流淚)
看板R_Language
標題[問題] R背景記憶體使用量控制
時間Sat Jul 30 17:58:00 2016
想問怎麼控制R在背景記憶體使用量(開工作管理員看到的RAM使用量)
我開R studio ,看到我目前的變數size都不會太多,總共加起來不到10mb
但是工作管理員的R卻佔超過2GB
可能是運算過程產生的? 有沒有辦法刪除 ?
我目前在做8千萬筆的DATA,大慨3GB,
目前用bigmemory讀進去,R studio顯示size不到1mb
我不知道到底是誰在後面佔用我的ram
想問問看有沒有什麼指令可以看到
這是變數佔的size 和我的工作管理員
http://imgur.com/DrljpW3
-------------------------------------
code:
map=find_map_fun(train_data[,2],1111)
#train_data有8千萬筆
find_map_fun=function(data,num){
bo=as.integer( data==num )
bo_matr=matrix(bo)
map=which(apply(bo_matr, 1L,
function(row) all(row == 1)))
return(map)
}
---------------------------------------------
目前光做這件事,就讓背景ram飆到2gb了
function中的變數不是執行完就會自動刪除嗎?
到底是誰在背後佔空間@@
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.227.128
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1469872682.A.A21.html
1F:推 andrew43: gc() 一下有效嗎? 07/30 18:31
有耶 全殺掉了 好方便的指令 謝謝
2F:→ andrew43: 其實冗餘的記憶體只有在不夠的時候才會清掉。gc()只是 07/30 21:32
3F:→ andrew43: 手動這個步驟而已。只要你ram夠用,應該不用手動。 07/30 21:33
因為接下來可能會面臨到記憶體控管問題,所以趁現在學一些小技巧
RAM夠,但是看到小小的程式就要花這麼多RAM,有點擔心哈哈
※ 編輯: f496328mm (36.231.227.128), 07/30/2016 22:39:18