object.size
位于 utils
包(package)。 说明
提供用于存储的内存的估计值R对象。
用法
object.size(x)
## S3 method for class 'object_size'
format(x, units = "b", standard = "auto", digits = 1L, ...)
## S3 method for class 'object_size'
print(x, quote = FALSE, units = "b", standard = "auto",
digits = 1L, ...)
参数
x |
一个R对象。 |
quote |
逻辑,指示是否应使用引号打印结果。 |
units |
用于格式化和打印尺寸的单位。不同
对于所有标准, |
standard |
要使用的byte-size 单位标准。字符串,可能缩写为 |
digits |
小数点后的位数,传递给 |
... |
要传递给其他方法或从其他方法传递的参数。 |
细节
确切地说内存分配的哪些部分应该归属于哪个对象不是clear-cut。此函数仅提供粗略指示:它对于原子向量应该相当准确,但不会检测例如列表的元素是否共享。 (考虑字符向量元素之间的共享,但不考虑单个对象中字符向量之间的共享。)
计算的是对象的大小,不包括在符号表中存储其名称所需的空间。
相关空间(例如,函数的环境以及 EXTPTRSXP
中的指针所指向的内容)不包括在计算中。
64 位构建上的对象大小比 32 位构建上的大,但在具有相同字长和指针大小的不同平台上很可能是相同的。
使用紧凑内部表示的对象的大小可以是over-estimated。
值
类 "object_size"
的对象,具有长度为 1 的双精度值,可归因于该对象的内存分配的估计值(以字节为单位)。
格式化和打印对象尺寸
对象大小可以使用 byte-size 单位进行格式化R的遗留标准,IEC标准,或SI标准。如下表所示,传统和IEC标准使用二进制单位(1024 的倍数),而 SI 标准使用十进制单位(1000 的倍数)。
对于方法 format
和 print
,参数 standard
指定要使用的标准,参数 units
指定要使用的 byte-size 单元。 units = "auto"
选择结果为 1 或更多的最大单位(四舍五入之前)。字节大小四舍五入到 digits
小数位。如果可能,standard = "auto"
根据 units
选择标准,否则使用旧标准。
的总结R的遗产和IEC单位:
物体大小 | legacy | IEC |
1 | 1字节 | 1乙 |
1024 | 1 KB | 1 KiB |
1024^2 | 1兆字节 | 1 MiB |
1024^3 | 1GB | 1 GiB |
1024^4 | 1 TB | 1 TiB |
1024^5 | 1 铅 | 1 PiB |
1024^6 | 1 EiB | |
1024^7 | 1 ZiB | |
1024^8 | 1 YiB | |
的总结SI单位:
物体大小 | SI |
1 | 1乙 |
1000 | 1 KB |
1000^2 | 1MB |
1000^3 | 1GB |
1000^4 | 1TB |
1000^5 | 1PB |
1000^6 | 1 EB |
1000^7 | 1ZB |
1000^8 | 1 元 |
1000^9 | 1 RB |
1000^10 | 1 个四分卫 |
例子
object.size(letters)
object.size(ls)
format(object.size(library), units = "auto")
sl <- object.size(rep(letters, 1000))
print(sl) ## 209288 bytes
print(sl, units = "auto") ## 204.4 Kb
print(sl, units = "auto", standard = "IEC") ## 204.4 KiB
print(sl, units = "auto", standard = "SI") ## 209.3 kB
(fsl <- sapply(c("Kb", "KB", "KiB"),
function(u) format(sl, units = u)))
stopifnot(identical( ## assert that all three are the same :
unique(substr(as.vector(fsl), 1,5)),
format(round(as.vector(sl)/1024, 1))))
## find the 10 largest objects in the base package
z <- sapply(ls("package:base"), function(x)
object.size(get(x, envir = baseenv())))
if(interactive()) {
as.matrix(rev(sort(z))[1:10])
} else # (more constant over time):
names(rev(sort(z))[1:10])
作者
R Core; Henrik Bengtsson for the non-legacy standard
s.
参考
The wikipedia page, https://en.wikipedia.org/wiki/Binary_prefix, is extensive on the different standards, usages and their history.
也可以看看
Memory-limits
用于对象大小的设计限制。
相关用法
- R select.list 从列表中选择项目
- R COMPILE 编译用于 R 的文件
- R readRegistry 读取 Windows 注册表配置单元
- R browseVignettes 在 HTML 浏览器中列出晕影
- R hasName 检查姓名
- R nsl 按主机名查找 IP 地址
- R edit 调用文本编辑器
- R create.post 准备电子邮件和帖子的辅助函数
- R hsearch-utils 帮助搜索实用程序
- R download.packages 从类似 CRAN 的存储库下载软件包
- R DLL.version MS Windows 上的 DLL 版本信息
- R ls.str 列表对象及其结构
- R Rscript R 前端脚本
- R bug.report 发送错误报告
- R PkgUtils 用于构建和检查附加包的实用程序
- R cite 引用参考书目条目
- R SweaveSyntConv 转换 Sweave 语法
- R RSiteSearch 搜索文档中的关键词或短语
- R glob2rx 将通配符或通配符模式更改为正则表达式
- R getFromNamespace 用于开发命名空间的实用函数
- R demo R 函数演示
- R mirrorAdmin 管理存储库镜像
- R citation 在出版物中引用 R 和 R 包
- R personList 人员集合(旧接口)
- R getS3method 获取 S3 方法
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Report the Space Allocated for an Object。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。