【问题标题】:different results in object size?对象大小的不同结果?
【发布时间】:2021-06-04 16:40:26
【问题描述】:
require(lobstr)

x <- lapply(1:50, function(i) c(rep("abc", i)))
  1. obj_size(x) ## 13,352 B

  2. sum(sapply(x, obj_size)) + 50*8 + 56 ## 16104 B 8 is pointer size, 56 is initial space

为什么结果不一样?

谢谢

【问题讨论】:

    标签: r objectsize


    【解决方案1】:

    我确实尝试使用基本 R object.size 函数复制您的问题,

    x <- lapply(1:50, function(i) c(rep("abc", i)))
    object.size(x)
    sum(sapply(x, object.size)) + 50*8 + 56 
    

    我找到了以下结果。似乎没有太大区别,这里和那里可能有 8 个字节,但几乎相同。我不认为有这么小的差异会产生任何显着差异。

    【讨论】:

    • 谢谢。所以这意味着,obj_size 函数中可能存在一些错误?
    • 是的可能是..虽然我会检查这两个函数是如何工作的..可能是内部工作/计算本身不同导致不同的结果
    • 我认为差异可能来自用于计算的环境。根据 ?obj_size() it never counts the size of the global environment, the base environment, the empty environment, or any namespace.
    猜你喜欢
    • 2010-09-08
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    相关资源
    最近更新 更多