2013-10-26 61 views
3

現在使用R,我的內存幾乎已滿(已應用gc())。有沒有辦法知道每個變量的內存消耗量,以便我知道哪一個佔用最多的內存並將其移除。R每個變量的內存使用量

回答

10

是有,嘗試:

object.size() 

太差SO讓我寫這一切胡言亂語增加每回答比我的按鍵。

+0

如果您發現對象所需的空間與其對象大小之間存在較大差異,您還可以嘗試通過'save.image()'重新啓動R並加載工作空間來保存工作空間。 – David

+1

你可以例如已經找到了一個完美的方法來獲得一個可讀的列表,因爲提問者想要「每個變量的內存消耗」:size < - sapply(ls(),function(n)object.size(get(n)) ,簡化= FALSE); print(sapply(sizes [order(as.integer(sizes))],function(s)format(s,unit ='auto')))' –

+2

好評。我已經把這些命令放在一個函數中,並且反過來排序:'list_obj_sizes < - 函數(list_obj = ls(envir = .GlobalEnv))size < - sapply(list_obj,function(n)object.size(get ),簡化= FALSE) } }。。。。。。。它更容易使用:'list_obj_sizes()' – Alan