I have been able to improve the leak considerably with your suggestion and also attaching the dataFrame instead of passing it as an argument of lm every time. As an added benefit this reduces the number of copy, which increases performance. It is still leaking, though....
Laurent 2008/11/21 Laurent Gautier <[EMAIL PROTECTED]>: > laurent oget wrote: >> >> is there something i can do to prevent the following script from leaking >> memory? > > > There seems to be something happening. > (more below) > >> Laurent >> >> from rpy2.robjects import r,RVector,RDataFrame >> from rpy2.rlike.container import TaggedList >> from math import sin >> import array >> >> size=100 >> xx=[] >> for x in range(size): >> xx.append(RVector(array.array('f',[sin(0.1*(y+x))for y in >> range(1000)]))) >> > > > (side note: the line above could write easier > > from rpy2.robjects import FloatVector > > for x in range(size): > xx.append(FloatVector([sin(0.1 * (x+y) for y in range(1000)])) > ) > > >> >> formula='x%s~%s'%(0,'+'.join(['x%d'%(i+1) for i in range(size-1)])) >> >> t=['x%d'%i for i in range(size)] >> df=RDataFrame(TaggedList(xx,tags=t)) >> >> done=False >> i=0 >> while not done: >> print i >> i=i+1 >> model=r.lm(formula,df) > > I thought that the following would solve the problem... but it does not. > The increase in running speed suggests that this is because there is less > copying (therefore the problem about copying and protecting R objects and > never unprotecting them). The growth of the process is slower, but still > there... > > > from rpy2.robjects import globalEnv > > globalEnv["dataf"] = df > > done=False > i=0 > while not done: > print i > i=i+1 > model=r('lm("%s", data=dataf)' %formula) > > > The problem will likely require a closer look. > > >> ------------------------------------------------------------------------- >> This SF.Net email is sponsored by the Moblin Your Move Developer's >> challenge >> Build the coolest Linux based applications with Moblin SDK & win great >> prizes >> Grand prize is a trip for two to an Open Source event anywhere in the >> world >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> _______________________________________________ >> rpy-list mailing list >> rpy-list@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/rpy-list > > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ rpy-list mailing list rpy-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rpy-list