繁体   English   中英

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

[英]R: Understanding how object.size() relates to memory use

我已经进行了许多分析,并将所有24x8 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将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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM