我期望相同长度的固定长度字符串向量在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
我的问题是为什么x
,y
和z
的对象尺寸不同?
如果存在全局字符串池,当我们从现有字符串池中对字符串进行采样时,它们应具有相同的大小。但事实并非如此,请参阅上面代码的最后两个示例。