[R] calculating memory usage

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Sep 13 19:47:28 CEST 2004


On Mon, 13 Sep 2004, Adaikalavan Ramasamy wrote:

> I am comparing two different algorithms in terms of speed and memory
> usage. I can calculate the processing time with proc.time() as follows
> but am not sure how to calculate the memory usage.
> 
>    ptm <- proc.time()
>    x <- rnorm(1000000)
>    proc.time() - ptm

Hmm ... see ?system.time!

> I would like to be within R itself since I will test the algorithm
> several hundred times and in batch mode. So manually looking up 'top'
> may not be feasible. help.seach("memory") suggests memory.profile and gc
> but I am not sure how to use these.

I don't think you can.  You can find out how much memory R is using NOW, 
but not the peak memory usage during a calculation.  Nor is that 
particularly relevant, as it depends on what was gone on before, the word 
length of the platform and the garbage collection settings.

On Windows, starting in a clean session, calling gc() and memory.size(), 
then calling your code and memory.size(max=TRUE) will give you a fair 
idea, but `top' indicates some Unix-alike.

-- 
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 mailing list