【问题标题】:Measuring memory usage in R [closed]测量 R 中的内存使用情况
【发布时间】:2017-01-03 12:18:12
【问题描述】:

考虑两个向量:

a <- 1
b <- 1:100

为什么是这行代码的结果:

sum(sapply(ls(),function(x){utils::object.size(get(x))}))
#488 (bytes)

与这行代码不同:

utils::object.size(ls())
#152 bytes

【问题讨论】:

  • 因为ls()是包含全局环境中对象名称的字符向量,而get(x)是实际对象。

标签: r memory


【解决方案1】:

第一个版本给你正确的结果:

object.size(a)  ## 32 Bytes
object.size(b)  ## 424 Bytes
sum(sapply(ls(),function(x){utils::object.size(get(x))}))  ## 456 Bytes

而第二个,本质上是在做:

object.size(c("a", "b"))  ## 96 Bytes

【讨论】:

    最近更新 更多