ID EN
Miscellaneous

gc

R Base 3.6.2

A call of gc causes a garbage collection to take place. gcinfo sets a flag so that automatic collection is either silent (verbose = FALSE) or prints memory usage statistics (verbose = TRUE).

Syntax

R
gc(verbose = getOption("verbose"), reset = FALSE, full = TRUE)
gcinfo(verbose)

Arguments

Parameter Description
verbose logical; if TRUE, the garbage collection prints statistics about cons cells and the space allocated for vectors.
reset logical; if TRUE the values for maximum space used are reset to the current values.
full logical; if TRUE a full collection is performed; otherwise only more recently allocated objects may be collected.

Return Value

gc returns a matrix with rows "Ncells" (cons cells), usually 28 bytes each on 32-bit systems and 56 bytes on 64-bit systems, and "Vcells" (vector cells, 8 bytes each), and columns "used" and "gc trigger", each also interpreted in megabytes (rounded up to the next 0.1Mb). If maxima have been set for either "Ncells" or "Vcells", a fifth column is printed giving the current limits in Mb (with NA denoting no limit). The final two columns show the maximum space used since the last call to gc(reset =

Details

A call of gc causes a garbage collection to take place. This will also take place automatically without user intervention, and the primary purpose of calling gc is for the report on memory usage. For an accurate report full = TRUE should be used. It can be useful to call gc after a large object has been removed, as this may prompt R to return memory to the operating system. R allocates space for vectors in multiples of 8 bytes: hence the report of "Vcells", a relic of an earlier allocator (that used a vector heap). When gcinfo(TRUE) is in force, messages are sent to the message connection at each garbage collection of the form Garbage collection 12 = 10+0+2 (level 0) ... 6.4 Mbytes of cons cells used (58%) 2.0 Mbytes of vectors used (32%) Here the last two lines give the current memory usa

Examples

Example
R
# NOT RUN {
gc() #- do it now
gcinfo(TRUE) #-- in the future, show when R does it
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)
# }

See Also

The ‘R Internals’ manual. Memory on R's memory management and gctorture if you are an R developer. reg.finalizer for actions to happen at garbage collection.