Hi all,

I'm getting the following warnings inside a loop:

Warning messages:
1: In calc.measures(g, 1, i) :
  Reached total allocation of 1535Mb: see help(memory.size)
2: In calc.measures(g, 1, i) :
  Reached total allocation of 1535Mb: see help(memory.size)

Usually, when I see these warnings, they are accompanied with an error message (Error: cannot allocate ...), but not in this case. I'm wondering how to react. I've tried adding a call to gc() inside the loop, i.e.:

for (i in 1:1000)
{
    calc.measures(g, 1, i)
    gc()
}

This gets rid of the warnings, but increases the running time by a factor of ten or so. So I'm thinking that maybe the warnings are simply telling me that calc.measures allocated so many temporary variables that garbage collection had to be triggered. But then I get a nagging feeling - why is R warning me that GC had to be triggered - isn't that the whole point of GC, that it gets triggered when memory is running out?

I'd be grateful for advise on this: Should I just ignore these warnings as long as there are no errors, should I bite the bullet and call gc() manually, or is there a third way to deal with this?

Best,
Magnus

ps. The reason the code is now in a loop is because a vectorized version gave me the same errors. So vectorization does not seem to be a usable fix here.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to