Rev 74202 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/base/man/Memory.Rd% Part of the R package, https://www.R-project.org% Copyright 1995-2015 R Core Team% Distributed under GPL 2 or later\name{Memory}\alias{Memory}\title{Memory Available for Data Storage}\description{How \R manages its workspace.}\details{\R has a variable-sized workspace. There are (rarely-used)command-line options to control its minimum size, but no longer any tocontrol the maximum size.#ifdef windowsOn Windows the \option{--max-mem-size} option (or environment variable\env{R_MAX_MEM_SIZE}) sets the maximum (virtual) memory allocation: ithas a minimum allowed value of 32M. This is intended to catchattempts to allocate excessive amounts of memory which may cause otherprocesses to run out of resources. See also \code{\link{memory.limit}}.#endif\R maintains separate areas for fixed and variable sized objects. Thefirst of these is allocated as an array of \emph{cons cells} (Lispprogrammers will know what they are, others may think of them as thebuilding blocks of the language itself, parse trees, etc.), and thesecond are thrown on a \emph{heap} of \sQuote{Vcells} of 8 bytes each.Each cons cell occupies 28 bytes on a 32-bit build of \R, (usually) 56bytes on a 64-bit build.The default values are (currently) an initial setting of 350k conscells and 6Mb of vector heap. Note that the areas are not actuallyallocated initially: rather these values are the sizes for triggeringgarbage collection. These values can be set by the command lineoptions \option{--min-nsize} and \option{--min-vsize} (or if they arenot used, the environment variables \env{R_NSIZE} and \env{R_VSIZE})when \R is started. Thereafter \R will grow or shrink the areasdepending on usage, never decreasing below the initial values. Themaximal vector heap size can be set with the environment variable\env{R_MAX_VSIZE}.How much time \R spends in the garbage collector will depend on theseinitial settings and on the trade-off the memory manager makes, whenmemory fills up, between collecting garbage to free up unused memoryand growing these areas. The strategy used for growth can bespecified by setting the environment variable \env{R_GC_MEM_GROW} toan integer value between 0 and 3. This variable is read atstart-up. Higher values grow the heap more aggressively, thus reducinggarbage collection time but using more memory.You can find out the current memory consumption (the heap and conscells used as numbers and megabytes) by typing \code{\link{gc}()} at the\R prompt. Note that following \code{\link{gcinfo}(TRUE)}, automaticgarbage collection always prints memory use statistics.The command-line option \option{--max-ppsize} controls the maximumsize of the pointer protection stack. This defaults to 50000, but canbe increased to allow deep recursion or large and complicatedcalculations to be done. \emph{Note} that parts of the garbagecollection process goes through the full reserved pointer protectionstack and hence becomes slower when the size is increased. Currentlythe maximum value accepted is 500000.}\seealso{\emph{An Introduction to R} for more command-line options.\code{\link{Memory-limits}} for the design limitations.\code{\link{gc}} for information on the garbage collector and totalmemory usage, \code{\link{object.size}(a)} for the (approximate)size of \R object \code{a}. \code{\link{memory.profile}} forprofiling the usage of cons cells.#ifdef windows\code{\link{memory.size}} to monitor total memory usage,\code{\link{memory.limit}} for the current limit.#endif}\keyword{environment}