Я обнаружил, что, как и в большинстве случаев, lobstr::obj_size(x)
даст вам более точные результаты, поскольку он не будет считать дубликат счета того же эталона. object.size()
всегда больше, чем obj_size () в большинстве случаев.
> x <- runif(1e6)
> y <- list(x, x, x)
> obj_size(y)
8,000,128 B
> object.size(y)
[1] 24000224 bytes
Какой из них подходит для объекта среды и почему существует различие?
e1 <- new.env(hash = FALSE, parent = emptyenv(), size = 3L)
e2 <- new.env(hash = TRUE, parent = emptyenv(), size = 3L)
e1$x <- e2$x <- 1:10
> object.size(e1)
[1] 56 bytes
> obj_size(e1)
848 B