Memory-limits              package:base              R Documentation

_M_e_m_o_r_y _L_i_m_i_t_s _i_n _R

_D_e_s_c_r_i_p_t_i_o_n:

     R holds objects it is using in memory.  This help file documents
     the current design limitations on large objects: these differ
     between 32-bit and 64-bit builds of R.

_D_e_t_a_i_l_s:

     R holds all objects in memory, and there are limits based on the
     amount of memory that can be used by all objects:

        *  There may be limits on the size of the heap and the number
           of cons cells allowed - see 'Memory' - but these are usually
           not imposed.

        *  There is a limit on the address space of a single process
           such as the R executable.  This is system-specific, but
           32-bit OSes imposes a limit of no more than 4Gb: it is often
           3Gb or less.

        *  The environment may impose limitations on the resources
           available to a single process - see the OS/shell's help on
           commands such as 'limit' or 'ulimit'.

     Error messages beginning 'cannot allocate vector of size' indicate
     a failure to obtain memory, either because the size exceeded the
     address-space limit for a process or, more likely, because the
     system was unable to provide the memory.  Note that on a 32-bit OS
     there may well be enough free memory available, but not a large
     enough contiguous 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 2^31 - 1
     ~ 2*10^9, as lengths are stored as signed integers.  In addition,
     the storage space cannot exceed the address limit, and if you try
     to exceed that limit, the error message begins 'cannot allocate
     vector of length'. The number of characters in a character string
     is in theory only limited by the address space.

_S_e_e _A_l_s_o:

     'object.size(a)' for the (approximate) size of R object 'a'.

