On Mon, 1 Sep 2003, Lariani,Sofiane,LAUSANNE,NRC/BAS wrote: > I want to free memory used by R. The usage of rm and gc give no result. I'm > running an algorithm consuming a huge memory and I need to recover the > memory used by R between 2 call of my algorithm. > Thank you in advance for your help. > > e-mail: [EMAIL PROTECTED] > > Sofiane Lariani
What operating system and what version of R, please ? Other people will have a much better understanding of the details here than I have, but here goes. The fact that you ask this question suggests that you are running the unnamed, memory intensive algorithm inside a loop. It's my understanding that gc() is called automatically every time control comes back to the command line prompt. So, gc() is only an issue inside a loop. You might TRY writing a wrapper function: my.algorithm <- function(...) { algorithm(...) gc() } and call the wrapper rather than algorithm() directly, inside the loop. Chances are this won't help, because the loop will try to keep intermediate results. (At least it used to do this in old Splus prior to 1990.) If nothing else works, do as we all used to do prior to 1990. Write a batch script which does one iteration of the algorithm and saves just the intermediate results you want. Then write a shell script (I assume you're using a version of unix) that simply runs R BATCH scriptname logfile again and again, one call for each iteration of the loop. This guarantees that nothing is saved except what you specify. (It's clunky, yes, but this works when nothing else will.) Alternatively, you may have access to a machine with more memory. - tom blackwell - u michigan medical school - ann arbor - ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help