Я хотел бы выяснить, сколько ОЗУ используется каждым из моих объектов внутри моей текущей рабочей области. Есть ли простой способ сделать это?
Определение использования памяти объектами?
Ответ 1
некоторое время назад я украл этот маленький самородок из здесь:
sort( sapply(ls(),function(x){object.size(get(x))})) 
он хорошо меня обслуживал
Ответ 2
1. по размеру объекта
чтобы получить распределение памяти на основе объекта за объектом, вызовите object.size() и передайте объект, представляющий интерес:
object.size(My_Data_Frame)
(если аргумент не передан в переменную, он должен быть кавычками или завершен в вызове get.), а затем опустить кавычки
вы можете пропустить свое пространство имен и получить размер всех объектов в нем:
for (itm in ls()) { 
    print(formatC(c(itm, object.size(get(itm))), 
        format="d", 
        big.mark=",", 
        width=30), 
        quote=F)
}
2. по типу объекта
чтобы получить использование памяти для вашего пространства имен, по типу объекта, используйте 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 
(Есть еще одна функция memory.size(), но я слышал и читал, что она работает только в Windows. Она просто возвращает значение в MB, поэтому, чтобы получить максимальную память, используемую в любое время в сеансе, используйте memory.size(макс = Т)).
Ответ 3
Вы можете попробовать lsos() функцию этот вопрос:
R> a <- rnorm(100)
R> b <- LETTERS
R> lsos()
       Type Size Rows Columns
b character 1496   26      NA
a   numeric  840  100      NA
R> 
		Ответ 4
Этот вопрос был опубликован и получил законные ответы так много, но я хочу сообщить вам еще один полезный совет, чтобы получить размер объекта с помощью библиотеки gdata и его 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)