[R] Easy method to set user-mode virtual memory space in Windows Vista and 7
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Oct 30 16:27:07 CET 2009
On Wed, 28 Oct 2009, Kingsford Jones wrote:
> I thought I'd share this with the list since it appears to provide a
> quick fix to some memory problems, and I haven't see it discussed in
> relation to R.
Seems you didn't look in the places mentioned in the posting guide, fo
this is an actual FAQ!
See the references in rw-FAQ Q2.9 (and this has been documented there
for many years, and the R developer made R large-address-aware so
users who looked at the rw-FAQ could benefit from this).
for a more rounded view covering all the relevant OSes.
> To reallocate virtual memory from kernel-mode to user-mode in 32-bit
> Vista or Windows 7 one can use the increaseuserva boot option value.
> On my 4GB Vista machine, R is now able to use 3GB memory (previously
> at the default value of 2GB).
> Here's the method:
> Open cmd.exe as administrator and type
> BCDEdit /set IncreaseUserVA <value>
> where <value> is between 2048 and 3072 (ie 2-3GB), then reboot. Given
> that you've set the --max-mem-size flag, or used the memory.limit
> function in an R session to increase R's memory allocation, your R
> processes should now be allowed to access up to 3GB of virtual memory.
See the rw-FAQ: it is 3GB of address space and 2.5GB of memory by
> I am not a Windows expert, so if anyone knows of disadvantages of
> using this method *please* post a response.
This is not advised in general by those who are experts (why do you
think that it is not the default in Windows?). As the URL above says
'For applications that are memory-intensive, such as database
management systems (DBMS), the use of a larger virtual address space
can provide considerable performance and scalability benefits.
However, the file cache, paged pool, and nonpaged pool are smaller,
which can adversely affect applications with heavy networking or
I/O. Therefore, you might want to test your application under load,
and examine the performance counters to determine whether your
application benefits from the larger address space.'
Remember that you are setting this for all uses and users of your
machine, not just the R process (so the last sentence is somewhat
The best advice seems to be that if you have 4GB or more of RAM is to
run a 64-bit version of Windows, which gives a 32-bit process a 4GB
user address space. If you have a lot more memory, consider a 64-bit
build of R (and an OS that handles memory more efficiently: one of my
background tasks right now is to investigate why R under Windows is
running a particular memory-intensive multiprocessor task so much more
slowly than Linux on the same hardware).
> Kingsford Jones
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help