Rev 42501 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/base/man/Memory-limits.Rd% Part of the R package, http://www.R-project.org% Copyright 1995-2007 R Core Development Team% Distributed under GPL 2 or later\name{Memory-limits}\alias{Memory-limits}\concept{memory}\concept{limits}\title{Memory Limits in R}\description{\R holds objects it is using in memory. This help file documents thecurrent design limitations on large objects: these differ between32-bit and 64-bit builds of \R.}\details{\R holds all objects in memory, and there are limits based on theamount of memory that can be used by all objects:\itemize{\item There may be limits on the size of the heap and the number ofcons cells allowed -- see \code{\link{Memory}} -- but these areusually not imposed.#ifdef unix\item There is a limit on the address space of a single process suchas the \R executable. This is system-specific, but 32-bit OSesimposes a limit of no more than 4Gb: it is often 3Gb or less.\item The environment may impose limitations on the resourcesavailable to a single process -- see the OS/shell's help on commands suchas \code{limit} or \code{ulimit}.#endif#ifdef windows\item There is a limit on the address space of a single process suchas the \R executable. This is 2Gb under 32-bit Windows unlessthe OS's default has been changed to allow more (up to 3Gb).See\url{http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx}and \url{http://msdn2.microsoft.com/en-us/library/aa366778.aspx}.(Under some 64-bit versions of Windows the limit is 4Gb: for othersit is 2Gb.)\item Under Windows, \R does impose limits on the total memoryallocation available to a single run, as the OS provides no way todo so. See \code{\link{memory.size}} and \code{\link{memory.limit}}.#endif}Error messages beginning \code{cannot allocate vector of size}indicate a failure to obtain memory, either because the size exceededthe address-space limit for a process or, more likely, because thesystem was unable to provide the memory. Note that on a 32-bit OSthere may well be enough free memory available, but not a large enoughcontiguous block of address space into which to map it.There are also limits on individual objects. On all versions of \R,the maximum length (number of elements) of a vector is\eqn{2^{31} - 1 \approx 2\thinspace 10^9}{2^31 - 1 ~ 2*10^9}, aslengths are stored as signed integers. In addition, the storage spacecannot exceed the address limit, and if you try to exceed that limit,the error message begins \code{cannot allocate vector of length}.The number of characters in a character string is in theory onlylimited by the address space.}\seealso{\code{\link{object.size}(a)} for the (approximate) size of \R object\code{a}.}\keyword{environment}