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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。