[R] Memory leaks in .C-interface

Duncan Murdoch murdoch.duncan at gmail.com
Fri Feb 3 16:21:09 CET 2012


On 12-02-03 9:26 AM, Grigory Alexandrovich wrote:
> Hi,
>
> I wrote a C-function which I call with the .C-interface  ( something
> like .C("foo", x, y) ).
> The function does a lot of things.
> Among<http://dict.leo.org/ende?lp=ende&p=_xpAA&search=things&trestr=0x8004>st
> other things it allocates much memory (stack and heap).
> Every heap allocation (with malloc) has a corresponding free call.
>
> My problem is, that if I call this function many times in a for-loop,
> the memory amount used by R
> converges to 100% and the process is being killed at the end.
>
> Clearing the workspace doesn't help, since the memory is not occupied by
> R-objects.
>
> Is it a known problem with the .C interface? How can I found out what
> kind of data fills the memory and especially how can I clean it?

The .C() function will create duplicate copies of its arguments, but 
they aren't saved, so garbage collection should reclaim them.  So it's 
most likely a problem in your own C code.  Debugging those is hard.

Duncan Murdoch

>
> I work on Linux (OpenSuse 12.1)
>
> Thanks
>
> Grigory Alexandrovich
>
>
>
>
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list