#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.

Reply via email to