#11521: Memleak when resolving the action of Integers on an Elliptic Curve
------------------------+---------------------------------------------------
Reporter: jpflori | Owner: robertwb
Type: defect | Status: needs_review
Priority: major | Milestone: sage-5.0
Component: coercion | Keywords: sd35
Work_issues: | Upstream: N/A
Reviewer: | Author: Simon King
Merged: | Dependencies: #11900 #715
------------------------+---------------------------------------------------
Changes (by SimonKing):
* status: needs_info => needs_review
* milestone: sage-duplicate/invalid/wontfix => sage-5.0
Old description:
> The following piece of code leaks memory. [[BR]] [[BR]] sage: K =
> GF(1<<55,'t') [[BR]] sage: a = K.random_element() [[BR]] sage: while 1:
> [[BR]] ....: E = !EllipticCurve(j=a); P = E.random_point(); 2*P;
>
> The problem seems to occur while resolving the action of ZZ on E.
>
> It does not happen if:
>
> - one does not change the curve in the loop
>
> - does P+P instead of a multiplication
>
> '''Apply'''
>
> [attachment:trac11521_triple_homset.patch]
New description:
Originally, this ticket was about the following memory leak when computing
with elliptic curves:
{{{
sage: K = GF(1<<55,'t')
sage: a = K.random_element()
sage: while 1:
....: E = EllipticCurve(j=a); P = E.random_point(); 2*P;
}}}
This example is in fact solved by #715. However, while working on that
ticket, another leak has been found, namely
{{{
sage: for p in prime_range(10^5):
....: K = GF(p)
....: a = K(0)
....:
sage: import gc
sage: gc.collect()
0
}}}
So, I suggest to start with #715 and solve the second memory leak on top
of it. It seems that a strong cache for homsets is to blame. I suggest to
use the weak `TripleDict` instead, which were introduced in #715.
'''Apply'''
[attachment:trac11521_triple_homset.patch]
--
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11521#comment:112>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.