R:了解object.size()与内存使用的关系

R:了解object.size()与内存使用的关系,r,memory,memory-management,ggplot2,R,Memory,Memory Management,Ggplot2,我进行了大量分析,并将所有24x8 GGPlot保存到列表中 当我检查对象大小时,我得到: print(object.size(output_list), units = "Mb") 115.3 Mb 如果我将对象保存为rds文件,该对象将占用大约650 Mb的空间 如果我检查得到的对象的内存使用情况: library(pryr) mem_used() # Note: In example I only have this object in the R memory 28.2 GB 我不知

我进行了大量分析,并将所有24x8 GGPlot保存到列表中

当我检查对象大小时,我得到:

print(object.size(output_list), units = "Mb")
115.3 Mb
如果我将对象保存为rds文件,该对象将占用大约650 Mb的空间

如果我检查得到的对象的内存使用情况:

library(pryr)
mem_used() # Note: In example I only have this object in the R memory
28.2 GB
我不知道为什么我的尺寸会有这么大的差异,而且我还没有在网上找到一个清晰的解释。你能帮我理解为什么这个看起来很小的物体占据了这么多的记忆吗


我认为这是因为所有的绘图都将所有数据点存储在其plotData中?但这不也会影响物体的大小吗?我还认为这是由于树结构,例如在data.tree包中,每个注释保存一个单独的环境。

根据帮助,
mem\u used
将NCELL和vcell相加——vcell(向量使用的内存)和NCELL(其他所有对象使用的内存))

这在我的笔记本电脑上似乎很好用

最好做
gc()
,以获得更好的想法

rm(list = ls())
m <- 1:100000000

object_size(m)
#400 MB

mem_used()
#454 MB

gc()
#           used  (Mb) gc trigger  (Mb)  max used  (Mb)
#Ncells   753450  40.3    1442291  77.1   1442291  77.1
#Vcells 51417867 392.3  121970165 930.6 101419240 773.8
rm(list=ls())
m函数
mem\u used()
返回R使用的内存总量,
output\u list
是R会话中唯一的对象吗?