为什么相同长度的相同长度的字符串的向量具有不同的object.size?

时间:2017-05-02 03:11:58

标签: r memory

我期望相同长度的固定长度字符串向量在R中具有相同的对象大小。但是,object.size为3个这样的字符向量提供不同的结果:

library(stringi)
x <- rep("123456", 100)
y <- c(rep("123456", 50), rep("654321", 50))

set.seed(1)
z <- stri_rand_strings(100, 6)

object.size(x)
#> 888 bytes
object.size(y)
#> 936 bytes
object.size(z)
#> 5640 bytes

object.size(sample(z, 100, replace = T))
#> 4008 bytes

object.size(sample(z, 100, replace = T))
#> 3672 bytes

我的问题是为什么xyz的对象尺寸不同?

修改

如果存在全局字符串池,当我们从现有字符串池中对字符串进行采样时,它们应具有相同的大小。但事实并非如此,请参阅上面代码的最后两个示例。

0 个答案:

没有答案