Hi!
On 2014-11-11, Peter Mueller <[email protected]> wrote:
>> Is it needed to install an optional package first? Which?
>>
>
> indeed, you have to install cbc-2.8.1.p0 first (if you have sage version
> 6.3). It takes some time to compile.
Thanks! I can confirm that there is a leak, and it seems that it
concerns six objects that are tracked by the cyclic garbage collector,
but can not be collected.
sage: import gc
sage: gc.collect()
22
sage: P = MixedIntegerLinearProgram(solver="Coin")
sage: gc.collect()
0
sage: len(gc.get_objects())
91944
sage: P = MixedIntegerLinearProgram(solver="Coin")
sage: len(gc.get_objects())
91950
sage: P = MixedIntegerLinearProgram(solver="Coin")
sage: len(gc.get_objects())
91956
sage: P = MixedIntegerLinearProgram(solver="Coin")
sage: len(gc.get_objects())
91962
sage: P = MixedIntegerLinearProgram(solver="Coin")
sage: len(gc.get_objects())
91968
Let's try to determine their type:
sage: S = set([id(x) for x in gc.get_objects()])
sage: D = {}
sage: for i in range(100):
....: P = MixedIntegerLinearProgram(solver="Coin")
....: del P
....: _ = gc.collect()
....: for x in gc.get_objects():
....: if id(x) not in S:
....: D[type(x)] = D.get(type(x),0)+1
....:
sage: for t,c in D.iteritems():
....: if c>90:
....: print t,c
....:
<class '_ast.Str'> 100
<class '_ast.Index'> 100
<type 'dict'> 4000
<type 'enumerate'> 100
<type 'frame'> 208
<type 'module'> 100
<class '_ast.Call'> 1000
<type 'generator'> 200
<class '_ast.If'> 100
<class '_ast.Compare'> 100
<class '_ast.Delete'> 100
<type 'weakref'> 299
<type 'tuple'> 302
<type 'set'> 100
<class '_ast.keyword'> 100
<type 'method_descriptor'> 3200
<type 'listiterator'> 200
<class '_ast.Subscript'> 100
<class '_ast.BinOp'> 100
<type 'list'> 2994
<class '_ast.Num'> 300
<class '_ast.Name'> 1900
<class '_ast.For'> 200
<class '_ast.Attribute'> 300
<class '_ast.Assign'> 200
<type 'builtin_function_or_method'> 202
<class '_ast.Interactive'> 100
We see the usual suspects (weakref), but we also see astoundingly much
stuff from _ast. And we see more than six new objects per iteration.
Anyway, I think we should open a trac ticket.
Best regards,
Simon
--
You received this message because you are subscribed to the Google Groups
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.