大型物体的大小

时间:2017-11-10 08:01:07

标签: r memory

我需要使用一些非常大的数据集。我想知道使用矩阵,列表,两个向量或data.frame是否更好。当我计算小物体的大小(使用包pryr)时,我得到不同的大小。例如:

   library(pryr)
   df <- data.frame(a=rep(10,1000),b=rep(10,1000))
   ma <- matrix(rep(10,2000),1000,2)
   li <- list(a=rep(10,1000),b=rep(10,1000))
   v <- rep(10,1000)
   object_size(df)
   object_size(ma)
   object_size(li)
   object_size(v)*2

我分别得到16.8 kB,16.2 kB,16.4 kB和16.1 kB。

但是,当对象较大时,它们在所有情况下似乎都是相同的大小。

   df <- data.frame(a=rep(1211,10000),b=rep(1211,10000))
   ma <- matrix(rep(1211,20000),10000,2)
   li <- list(a=rep(1211,10000),b=rep(1211,10000))
   v <- rep(1211,10000)
   object_size(df)
   object_size(ma)
   object_size(li)
   object_size(v)*2

在这种情况下,我在所有情况下都得到160 kB。

我想知道为什么会这样。我预计,对于较大的物体,差异会更明显。

0 个答案:

没有答案