#18905: fix more leaks found in #18897
---------------------------+------------------------
Reporter: dimpase | Owner:
Type: defect | Status: new
Priority: major | Milestone: sage-6.8
Component: memleak | Resolution:
Keywords: | Merged in:
Authors: | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: #18897 | Stopgaps:
---------------------------+------------------------
Comment (by slabbe):
Replying to [comment:2 pbruin]:
> This is probably because the `algebraic_closure()` method of finite
fields is cached (see #14990), creating circular references between finite
fields and their algebraic closures. The following simpler code exhibits
a similar memory leak:
> {{{
> #!python
> import gc
> from collections import Counter
> gc.collect()
> pre = {id(c) for c in gc.get_objects()}
> for p in prime_range(100):
> GF(p).algebraic_closure()
> gc.collect()
> post = Counter(type(o) for o in gc.get_objects() if id(o) not in pre)
> print([(k,v) for (k,v) in post.iteritems() if v>10])
> }}}
Like noticed in #18897, when this code is runned the first time, there are
many stuff left. But the second time, the list is empty.
--
Ticket URL: <http://trac.sagemath.org/ticket/18905#comment:5>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" 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-trac.
For more options, visit https://groups.google.com/d/optout.