gc                   package:base                   R Documentation

Garbage Collection

Description:

     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').

Usage:

     gc(verbose = getOption("verbose"), reset=FALSE)
     gcinfo(verbose)

Arguments:

 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.

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.

     However, 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 relict of an earlier allocator (that used
     a vector heap).

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=TRUE)' (or since R started).

     'gcinfo' returns the previous value of the flag.

See Also:

     'Memory' on R's memory management, and 'gctorture' if you are an R
     hacker.

     'reg.finalizer' for actions to happen at garbage collection.

Examples:

     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)

