[R] Garbage Collecting

Kjetil Kjernsmo kjetil.kjernsmo at astro.uio.no
Fri Jul 14 20:19:53 CEST 2000

Hello again! I have some follow-up on the problem I had with the garbage
collector. I have finally come across a computer with > version
platform i686-pc-linux-gnu
arch     i686             
os       linux-gnu        
system   i686, linux-gnu  
major    1                
minor    1.0              
year     2000             
month    June             
day      15               
language R                
(I believe it is running RH6.2, and it has 128MB RAM). It seems I am able
to reproduce the problem I had on this system as well, with exactly the
same objects that I had on the alpha. The objects (all that are needed
to reproduce the problem) are in
<URL:http://www.astro.uio.no/~kjetikj/tmp/kjetil.RData> (file is 87457
bytes), and the basic thing I am doing, is that I am passing a largish
object between functions a lot of times.

The function calls gc(v=T) for every time it is called (by an, I realize, 
ineffective apply-call), and the output looks like this  
> l4 <- t(apply(cbind(rep(1000000, 4)), 1, lineprofile, 1, 80, 
+                 smap01n$histogram))
Garbage collection [nr. 1]...
193062 cons cells free (55%)
25145 Kbytes of heap free (98%)
Garbage collection [nr. 4]...
191545 cons cells free (54%)
19217 Kbytes of heap free (75%)
Garbage collection [nr. 8]...
190029 cons cells free (54%)
13290 Kbytes of heap free (52%)
Garbage collection [nr. 14]...
188513 cons cells free (53%)
7362 Kbytes of heap free (29%)
> l4 <- t(apply(cbind(rep(1000000, 4)), 1, lineprofile, 1, 80, 
+                 smap01n$histogram))
Garbage collection [nr. 28]...
187005 cons cells free (53%)
1438 Kbytes of heap free (6%)
Error: heap memory (25600 Kb) exhausted [needed 45 Kb more]
       See "help(Memory)" on how to increase the heap size.
> gc()
         free   total (Mb)
Ncells 186764  350000  6.7
Vcells  11446 3276800 25.0

It seem something like 6 MB goes for each call. I started R with
vsize=25M, which is the least one needs to do the run once. 

I have also tried on a sparc-sun-solaris2.7 box with apparently the same

Now, there is always a possibility that I have some really strange things
in my code, or that my understanding of the garbage collector is totally
flawed. I have tried to come up with a minimal piece of code needed to
reproduce the problem, but I have so far failed, I continue to try.
Meanwhile, I hope the code I have put on the web can shed some light... 

The other problem I had with disappearing values has been resolved, thanks
to Brad McNeney.


Kjetil Kjernsmo
Graduate astronomy-student                    Problems worthy of attack
University of Oslo, Norway            Prove their worth by hitting back
E-mail: kjetikj at astro.uio.no                                - Piet Hein
Homepage <URL:http://www.astro.uio.no/~kjetikj/>
Webmaster at skepsis.no 

r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch

More information about the R-help mailing list