我运行了大量分析并将所有24×8 ggplots保存到列表中.
当我检查对象大小时,我得到:
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中的所有数据点?但这不会影响object.size吗?我还认为这是由于树结构,例如在data.tree包中,每个注释都保存了一个单独的环境.
最佳答案 根据帮助,mem_used总结了Ncells和Vcells – Vcells(向量使用的内存)和Ncells(其他所有内存使用的内存)).
这似乎在我的笔记本电脑上工作正常.
最好做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