gc
位于 base
包(package)。 说明
调用 gc
会导致发生垃圾回收。 gcinfo
设置一个标志,以便自动收集或者静默(verbose = FALSE
),或者打印内存使用统计信息(verbose = TRUE
)。
用法
gc(verbose = getOption("verbose"), reset = FALSE, full = TRUE)
gcinfo(verbose)
参数
verbose |
逻辑性;如果是 |
reset |
逻辑性;如果 |
full |
逻辑性;如果 |
细节
调用 gc
会导致发生垃圾回收。这也将自动发生,无需用户干预,调用 gc
的主要目的是报告内存使用情况。为了获得准确的报告,应使用full = TRUE
。
拨调用可能会有用gc
删除大物体后,因为这可能会提示R将内存返回给操作系统。
R以 8 字节的倍数为向量分配空间:因此报告为"Vcells"
,早期分配器(使用向量堆)的遗迹。
当 gcinfo(TRUE)
生效时,消息会在表单的每次垃圾回收时发送到消息连接
Garbage collection 12 = 10+0+2 (level 0) ... 6.4 Mbytes of cons cells used (58%) 2.0 Mbytes of vectors used (32%)
这里最后两行给出了当前内存使用量四舍五入到下一个 0.1Mb 以及当前触发值的百分比。第一行给出了各个级别的垃圾收集数量的详细信息(有关解释,请参阅“R 内部”手册)。
值
gc
返回一个矩阵,其中包含行 "Ncells"
(cons 单元),通常在 32 位系统上每行 28 个字节,在 64 位系统上每行 56 个字节,以及 "Vcells"
(向量单元,每个 8 个字节)和列 "used"
和 "gc trigger"
,每个也以兆字节为单位解释(四舍五入到下一个 0.1Mb)。
如果为 "Ncells"
或 "Vcells"
设置了最大值,则会打印第五列,给出以 Mb 为单位的当前限制(NA
表示没有限制)。
最后两列显示自上次调用以来使用的最大空间gc(reset = TRUE)
(或自R开始)。
gcinfo
返回标志的先前值。
例子
gc() #- do it now
gcinfo(TRUE) #-- in the future, show when R does it
## vvvvv use larger to *show* something
x <- integer(100000); for(i in 1:18) x <- c(x, i)
gcinfo(verbose = FALSE) #-- don't show it anymore
gc(TRUE)
gc(reset = TRUE)
也可以看看
“R 内部结构”手册。
Memory
在R的内存管理,以及gctorture
如果你是R开发商。
gc.time()
报告用于垃圾收集的时间。
reg.finalizer
用于垃圾收集时发生的操作。
相关用法
- R gc.time 报告垃圾收集所花费的时间
- R gctorture 酷刑垃圾收集者
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R getDLLRegisteredRoutines DLL 中 C/Fortran 例程的反射信息
- R gzcon 通过连接(解)压缩 I/O
- R groupGeneric S3组通用函数
- R get 返回命名对象的值
- R gl 生成因子水平
- R grouping 分组排列
- R getLoadedDLLs 获取当前会话中加载的 DLL
- R gettext 翻译短信
- R grepRaw 原始向量的模式匹配
- R getNativeSymbolInfo 获取一个或多个本机 (C/Fortran) 符号的说明
- R file.path 构造文件路径
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
- R rank 样本排名
- R pushBack 将文本推回连接
- R strsplit 分割字符向量的元素
- R seq.Date 生成规则的日期序列
- R invisible 将打印模式更改为不可见
- R noquote “无引号”字符串打印类
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Garbage Collection。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。