初始开销:
> row = runif(1000)
> object.size(row[1])
32 bytes
> object.size(row[1:2])
40 bytes
> object.size(row[1:3])
56 bytes
> object.size(row[1:4])
56 bytes
Run Code Online (Sandbox Code Playgroud)
长度为1的向量为32个字节,每个其他元素为8个字节.还有一些其他分配功能在低端进行,有时会占用16个字节,但平均值为8.
开始时的额外字节是因为R必须保持长度和其他属性.
require(plyr)
size = ldply(1:200,function(i){object.size(row[1:i])})$V1
plot(1:200,size,type="l")
Run Code Online (Sandbox Code Playgroud)