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