calculating memory usage
Many thanks to Prof. Ripley. The problem is that memory.profile does not
exist in *nix environment and there is probably a very good reason why.
I was reading help(Memory) and in the Details section :
You can find out the current memory consumption (the heap and cons
cells used as numbers and megabytes) by typing 'gc()' at the R
prompt.
AFAICS, Ncells is the fixed memory used by the underlying R and Vcells
is the variable part and depends on the calculations.
Would I be able to say that the generating 10 million random numbers
requires approximately 73.4 Mb (= 26.3 + 80.5 - 26.3 - 7.1) of memory ?
I double checked this against memory.size() in Windows and they seem to
agree. Thank you.
gc()
used (Mb) gc trigger (Mb) Ncells 456262 12.2 984024 26.3 Vcells 122697 1.0 929195 7.1
x <- rnorm(10000000) gc()
used (Mb) gc trigger (Mb) Ncells 456274 12.2 984024 26.3 Vcells 10123014 77.3 10538396 80.5
On Mon, 2004-09-13 at 18:47, Prof Brian Ripley wrote:
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.