如何计算R中的对象大小?

时间:2017-07-26 16:34:42

标签: r memory vector size

> print(object.size(runif(1e6)),unit="Mb")
7.6 Mb

对于具有100万个元素的向量,这给了我7.6Mb。但为什么?每个元素是32位还是64位?我无法添加这些数字。

1 个答案:

答案 0 :(得分:4)

它们是64位(8字节)浮点值。一兆字节(Mb)是2 ^ 20字节(不是10 ^ 6 - 见下文)......所以......

8*1e6/(2^20)
[1] 7.629395

对于Mb的含义有很多混淆的可能性:

与往常一样,这在?object.size ...

的详细信息中有明确记录
  

如下表所示,传统和IEC标准使用二进制单位(1024的倍数),而SI标准使用十进制单位(1000的倍数)。 ..

*object size*  *legacy*  *IEC*
   1           1 bytes   1 B  
1024           1 Kb      1 KiB
1024^2         1 Mb      1 MiB

Google的转换似乎使用SI单位(1 MB = 10 ^ 6字节)。