Determinando o uso de memory de objects?

Eu gostaria de descobrir quanto de RAM está sendo usado por cada um dos meus objects dentro do meu espaço de trabalho atual. Existe uma maneira fácil de fazer isso?

Há algum tempo atrás eu roubei esta pequena pepita daqui :

sort( sapply(ls(),function(x){object.size(get(x))})) 

Ele me serviu bem

1. pelo tamanho do object

para obter alocação de memory em uma base de object por object , chame object.size () e passe o object de interesse:

 object.size(My_Data_Frame) 

(a menos que o argumento transmitido seja uma variável, ele deve ser citado, ou então empacotado em uma chamada get .) nome da variável, omitindo as aspas,

você pode percorrer o seu namespace e obter o tamanho de todos os objects, assim:

 for (itm in ls()) { print(formatC(c(itm, object.size(get(itm))), format="d", big.mark=",", width=30), quote=F) } 

2. por tipo de object

para obter o uso de memory para seu namespace, por tipo de object, use memory.profile ()

 memory.profile() NULL symbol pairlist closure environment promise language 1 9434 183964 4125 1359 6963 49425 special builtin char logical integer double complex 173 1562 20652 7383 13212 4137 1 

(Há outra function, memory.size (), mas ouvi e li que ela parece funcionar apenas no Windows. Ela apenas retorna um valor em MB; portanto, para obter a memory máxima usada a qualquer momento na session, use memory.size (max = T)).

Você poderia tentar a function lsos() desta questão :

 R> a <- rnorm(100) R> b <- LETTERS R> lsos() Type Size Rows Columns b character 1496 26 NA a numeric 840 100 NA R> 

Esta questão foi postada e obteve respostas legítimas há muito tempo, mas quero que você conheça outras dicas úteis para obter o tamanho de um object usando uma biblioteca chamada gdata e sua function ll() .

 library(gdata) ll() # return a dataframe that consists of a variable name as rownames, and class and size (in KB) as columns subset(ll(), KB > 1000) # list of object that have over 1000 KB ll()[order(ll()$KB),] # sort by the size (ascending)